c语言练习题.doc_第1页
c语言练习题.doc_第2页
c语言练习题.doc_第3页
c语言练习题.doc_第4页
c语言练习题.doc_第5页
已阅读5页,还剩12页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

第一二章1、C语言规定:在一个源程序中,main函数的位置()。A.必须在最后 B.必须在系统调用的库函数的后面。C.必须在最开始。D.可以任意2、以下叙述正确的是()。A. C语句前面必须有行号 B. C程序中每行只能写一条语句C. C语言本身没有输入输出语句 D. 注释必须跟在一行语句的后面3、下列说法中正确的是()。A. C程序书写时,不区分大小写字母B. C程序书写时,一行只能写一个语句C. C程序书写时,一个语句可分成几行书写D. C程序书写时每行必须有行号4、下列字符串不是标识符的是()A._HJ B.9_student C.long D.LINE 15、以下标识符中,不能作为合法的C用户定义标识符的是:( )A .a3_b3 B.void C._123 D.abc6、C语言中的标识符只能由字母、数字和下划线三种字符组成,且第一个字符()。A.必须为字母或下划线。 B.必须为下划线。 C.必须为字母 D.可以是字母、数字和下划线中的任一种字符。7、在C语言提供的合法的关键字是()A、switch B、cher C、Case D、sturct8、在C语言中,负整数以( )形式存放。 A、补码 B、BCD码 C、反码 D、进制数9、下列合法的C语言整型常量是() A、095B、139 C、0xff D、01010、以下程序main() int i=010,j=10,k=0x10; printf(%d,%d,%dn,i,j,k);输出结果是( )A.8,10,16 B.8,10,10 C.10,10,10 D.10,10,1611、下列合法的字符常量是( )。A、084 B、x43 C、ab D、0 12、下列合法的字符常量是( )。A、“0” B、ab C、12 D、11713、 已知ch是字符型变量,下面正确的赋值语句是()。A、ch = 123;B、ch= 08 ; C、 ch = xff ; D、 ch = ;14、已知ch是字符型变量,下面不正确的赋值语句是 ()。A.ch = 5 + 9; B.ch= a + b ; C. ch = 0 ;D. ch= 7 + 6;15、已知在ASCII字符集中,数字0的序号为48,下面程序的输出结果为() main() char x,y; x=0;y=9; pirntf(“%d,%dn”,x,y); A.因输出格式不合法,输出错误信息 B.48,57 C.0,9 D.48,5816、C语言中,运算对象必须是整型数的运算符是()A% B./ C.%和/ D.*17、若有定义:int a = 7; float x = 2.5 , y = 4.7 ; 则表达式 x + a % 3 * (int) (x + y) % 2/4 的值是()。A.2.750000B. 0.00000 C. 3.500000D. 2.500000 18、假设在程序中a,b,c均被定义为整型,并且已赋大于1的值,则下列能正确表示代数式1/(abc)的表达式是()。A、1/a*b*c B、1/(a*b*c)C、1/a/b/(float) c D、1.0/a/b/c19、以下程序的运行结果是()。#include void main() double f=3.64159; int n; n=(int)(f+10)%3; printf(%dn,n); 20、以下程序的输出结果是_ main() int x=10,y=10; printf(“%d %dn”,x-,-y); A) 10 10 B) 9 9 C) 9 10 D) 10 921、以下程序运行后的输出结果是() 。main() char m;m=B+32; printf(%cn,m); A、B B、b C、98 D、a22、若有以下程序main() char a; a=H-A+0; print(%cn,a);执行后的输出结果是()23、若有以下定义和语句 char c1=b,c2=e;printf(%d,%cn,c2-c1,c2-a+A);则输出结果是:() A、2,M B、3,E C、2,E D 、3, M24、若x,i,j和k都是int型变量,则执行下面表达式后x的值为()x=(i=4,j=16,k=32)A、4B、16C、32D、52025、执行下面程序时,欲将25和2.5分别赋给a和b,正确的输入方法是()。int a;float b;scanf(a=%d,b=%f,&a,&b);A) 25 2.5B) 25,2.5C) a=25,b=5.5D) a=25 b=2.526、若有int a, b; scanf(“%d%d”, &a, &b);语句, 输入数据时,不可以用( )作为输入的分隔符。 A)TAB键 B)空格 C)回车 D),27、. 以下程序的输出结果是_main() int a = 2,b = 5; printf(“a=%d,b=%d”,a,b);A) a=%2,b=%5 B) a=2,b=5C) a=%d,b=%d D) a=%d,b=%d28、以下程序的运行结果是 。#include main() float a=3.1415; printf(|%06.0f|n,a);29、以下程序的运行结果是 。#include main() int x=0177; printf(%3d,%6d,%6o,%6x,%6un,x,x,x,x,x);30、以下程序的运行结果是 。#include main() char a,b; a=a;b=b; a=a-32;b=b-32; printf(%c,%c,%d,%dn,a,b,a,b);31、为表示关系x=y=z,应使用C语言表达式( )A、.(y=z) B、(x=y)AND(y=z)C、(x=y=z) D、(x=y)&(y=z)32、C语言中,逻辑“真“等价于()。A、大于零的数 B、大于零的整数C、非零的数 D、非零的整数33、表达式0|6&2&1的值是( D ) A、3 B、0 C、9 D、134、 表达式_是满足:当c的值为1、3、5三个数时值为“真”,否则值为“假”的表达式A、 (c=1)|(c=3)|(c=5) B、 (c!=1)&(c!=3)&(c!=5) C、 (c=1)&(c=3)&(c=5) D、 (c=1)|(c=3)|(c=5)35、判断char型变量c1是否为小写字母正确表达式为:()A、a=cl=a)&(cl=cl)|(z=a)&(cl=z)36、设x , y和z是int型变量,且x = 3, y = 4 , z = 5 则下面表达式中值为0的是()。A、!(x y )&!z | 1)B、 x & y C、 x | y+z & y - zD、x =y=x)? 1:0 z=y&y=xA、0 1 B、1 1 C、0 0 D、1 01、C语言程序是由 构成的,一个C源程序至少且仅包含一个 函数,也可以包含一个main函数和若干个其他函数。 2、结构化程序设计方法规定程序或程序段的结构有三种: 、 和 。3、C语言中基本的数据类型有: 、 、 。4、执行下列语句int a=8; a+=a-=a*a; 后,a的值是 。5、用把一些语句括起来称为 语句。7、整型变量的类型说明符有:_、_、_。8、实型变量的类型说明符有:_、_。9、符号”a”和a的区别是”a”是_,而a是_。10、赋值表达式和赋值语句的区别在于有无 。11、有如下输入语句:scanf(“a=%d,b=%d,c=%d”,&a,&b,&c);为使变量a的值为1,b的值为3,c的值为2,从键盘输入数据的正确形式应是 。12、在printf函数的格式说明符为”%-m.nf”,其中m表示_,n表示_,- 表示_。13、C语言中getchar() 函数的功能是_。14、语言中putchar(c ) 函数的功能是_ _ _ 。15、C语言编绎系统在判断一个量是否为“真”时,以0代表“假”,以 代表“真”。1、从键盘上出入一个大写字母,要求改成小写字母输出。第三章 程序的控制结构1、 分析以下程序:main() int x=5,a=1,b=0; if (x=a+b) printf(“*n”); else printf(“# # # #n”);以上程序()A、有语法错,不能通过编译 B、通过编译,但不能连接C、输出* D、输出# # # #2、 分析以下程序:main() int x=5,a=1,b=0; if (x= =a+b) printf(“*n”); else printf(“# # # #n”);以上程序()A、有语法错,不能通过编译 B、通过编译,但不能连接C、输出* D、输出# # # #3、 分析以下程序:main() int x=5,a=0,b=0; if (x=a+b) printf(“*n”); else printf(“# # # #n”);以上程序()A、有语法错,不能通过编译 B、通过编译,但不能连接C、输出* D、输出# # # #4、执行下面的程序后,输出m为()。main( ) int m=20;swith(m) case 19: m+=1;case 20: m+=1;case 21: m+=1;case 22: m+=1; printf(%dn,m); A. 20 B. 21 C. 22 D. 235、.多重if_else语句嵌套使用时,寻找与else配套的if方法是()。A. 缩排位置相同的if B.其上最近的ifC. 下面最近的if D. 同行上的if6、当a = 1 , b = 3 , c =5, d=4时,则执行完下面一段程序后,x的值是()。 if ( a b ) if ( c d ) x = 1; else if ( a c ) if ( b b) a=b; b=c;c=a; printf(“%d,%d,%d”a,b,c); A、20,30,20 B、20,40,20 C、30,20,40 D、20,30,408、设有说明语句:int a=1,b=0 ; 则执行以下语句后输出为()。switch( a ) case 1: switch ( b ) case 0: printf (“*0*”); break;case 1: printf (“*1*”); break;case 2: printf ( “*2*” ) ; break; A.*0*B. *0*2*C.*0*1*2* D.有语法错误9、以下程序运行后的输出结果是 。main() int a=1,b=3,c=5;if (c=a+b) printf(yesn);else printf(non);11、以下程序运行后的输出结果是 。main() int a=1,b=3,c=5;if (c= =a+b) printf(yesn);else printf(non);12、有以下程序,执行后输出结果是 。main() intn=0,m=1,x=2; if(!n)x-=1; if(m)x-=2; if(x)x-=3; printf(“%dn”,x); 13、有以下程序,执行后输出结果是 ( )main() int i; for(i=0;i3;i+) switch(i) case 1: printf(%d,i); case 2: printf(%d,i); default: printf(%d,i); A、011122 B、 012 C、012020 D、) 12014、以下程序运行后的输出结果是 。main() int i,m=0,n=0,k=0;for(i=9; ibc)printf(%dn,d); else if(c-1=d)= =1)printf(%dn,d+1); elseprintf(%dn,d+2)A、 2 B、3 C、 4 D、编译时有错,无结果17、语句while(!x);中的表达式!x为真等价于()。A、x= =0B、x!=1C、x!=0 D、x= =118、对于循环语句while(1);下面( )是正确的 A、死循环 B、循环一次 C、不进入循环体 D、编译有错19、设有程序段int k = 10 ; while ( k = 0 ) k = k - 1 ; 以下描述正确的是 ()。A. 循环体语句一次也不执行。B.循环是无限循环。C.while 循环语句执行十次。D. 循环体语句执行一次。20、以下程序执行之后sum的值是( )。main() int i , sum;for(i=1;i6;i+) sum+=i;printf(%dn, sum); A、15 B、14 C、 不确定 D、021、有以下程序,执行后输出结果是 ( )main() int i=0,s=0;do if(i%2) i+;continue; i+; s +=i; while(iy)(1) ;(2) ;(3) ;if((4) ) t=z;z=x;x=t;if((5) ) t=y;y=z;z=t;printf(small to big: %d,%d,%dn,x,y,z);2、 以下程序可判断输入的一个整数是否能被3或7整除,若能整除,输出“yes”,否则输出“no”。请填空。 #include main() int k; printf(“Enter a int number:”); scanf(“%d”,&k); if_ printf(“yesn”); else printf(“_”); 3、以下程序从读入的整数数据中,统计大于零的整数个数和小于零的整数个数。用输入零来结束输入,程序中用i统计大于零的个数,用变量j统计小于零的整数。请填空。 main() _n,i,j; printf(“Enter INT numbers,with 0 to endn”); i=j=0; scanf(“%d”,&n); while _ if (n0) i=_; if (n0) j=_; _; printf(“i=%4d j=%4dn”,i,j); 4、以下程序的运行结果是 。#include main()int a=11,i;for(i=0;i5;i+) printf(%d,a+i);5、执行以下程序后,输出#号的个数是 。#include main() int i,j;for(i=1; i5; i+) for(j=2; j=i; j+) putchar(#);6、填充下列程序,找出100200之间的全部素数# include main() int m,k,i,n=0; for (m=101;m=200;m=m+2) k=sqrt(m);for ( i=2; (6) _ ; i+ ) if ( (7) _ ) break;if ( (8) _ ) printf(“%d”,m); n=n+1; if ( n%10= =0) printf(“n”);printf(“n”);7、 有以下程序,程序运行后的输出结果是()#include #define F(X,Y) (X)*(Y)main() int a=3, b=4;printf(%dn, F(a+, b+);A、12 B、15 C、16 D、208、对下面程序段正确的判断()。 # define A 3 # define B(a) ( A + 1 )*a ) M x = 3*( A + B( 7 ) ) ;A. 程序错误,不许嵌套宏定义 B. x = 21C. x = 93 D. 程序错误,宏定义不许有参数9、在“文件包含“预处理语句的使用形式中,当#include后面的文件名用” “(双引号)括起时,寻找被包含文件的方式为( )A、直接按系统设定的标准方式搜索目录B、仅仅搜索源程序所在的目录C、先在源程序所在目录搜索,再按系统设定的标准方式搜索D、仅仅搜索当前目录1、C语言共提供了三种用于实现循环结构的流程控制语句,它们 、 和 。2、在循环中,continue语句与break语句的区别是:continue语句是语句的区别是:continue语句是 ,break 是 。3、while和dowhile的区别是 。4、求1到100所有奇数的和。5、编写程序输出所有的水仙花数。6、编写程序,输入一个整数,打印出它是奇数还是偶数。第四章 数组1、若有说明:int a10 ; 则对a 数组元素的正确引用是()。A. a 10 B.a10-10C.a ( 5 )D.a3.52、合法的数组定义是 ( )A、int a=string; B、int a5=0,1,2,3,4,5; C、vhst s=string; D、char a=0,1,2,3,4,5;3、以下程序运行后的输出结果是( ) main() int i,n=0,0,0,0,0;for(i=1;i=4;i+) ni=ni-1*2+1;printf(%d ,ni);4、有以下程序,执行后输出结果是( )main() int p7=11,13,14,15,16,17,18,i=0,k=0; while(i7&pi%2)k=k+pi;i+; printf(%dn,k); A、58 B、56 C、45 D、 245、定义如下变量和数组:int i;int x33=1,2,3,4,5,6,7,8,9;for(i=0;i3;i+) printf(%d,xi2-i); 则下面语句的输出结果是( )A.1 5 9 B.1 4 7 C.3 5 7 D.3 6 9 6、若有说明: int a34=0;则下面正确的叙述是()A、只有元素a00可得到初值0B、此说明语句不正确。C、数组a中各元素都可得到初值,但其值不一定为0D、数组a中每个元素均可得到初值07、对以下说明的正确理解是()。 int a10 = 6, 7, 8, 9, 10 A. 将5个初值依此赋给a 1 至a5 B. 将5个初值依此赋给a 0 至a 4 C. 将5个初值依此赋给a 6 至a10 D. 因长度与初值个数不同,故语句错误8、若有说明:int a34;则对a数组元素的正确引用是() A、a24 B、a1,3 C、a1+10 D、a(2)(1)9、若有说明语句:int a 3=1,2,3,4,5,6,7,8,9; 则a数组的行数为( )。A、不确定 B、1 C、2D、310、有以下程序( )main() int m3=1,4,7,2,5,8,3,6,9; int i,j,k=2; for(i=0;i3;i+) printf(%d,mki); 执行后输出结果是A、 4 5 6 B、2 5 8 C、3 6 9 D、7 8 911、对两个数组a和b进行如下初始化 char a=ABCDEF; char b=A,B,C,D,E,F; 则以下叙述正确的是 () A、a与b数组完全相同 B、 a与b长度相同 C、a和b中都存放字符串 D、 a数组比b数组长度长12、若有定义和语句: char s10;s=abcd;printf(%sn,s); 则结果是(以下u代表空格)( )A、输出abcd B、输出aC、输出abcduuuuu D、编译不通过13、下列语句的执行结果是()char str10=“china”;printf(“%d”,strlen(str);A.10 B.6 C.5 D.014、下面程序段的运行结果是()。 char a7=”abcdef”; char b4=”ABC”; strcpy(a,b); printf(“%c”,a5);A、空格 B、.0 C、e D、f15、有两个字符数组 a, b,则以下正确的输入格式是()。 A.scanf (% s % s, &a, &b )B. gets (a, b)C.scanf (% s % s, a, b ) D. gets (a); gets (b)16、以下程序段运行的结果是()。 Char c5 = a , b , 0 , c , 0 ; printf ( % s , c ); A、 a b B、ab cC、 abcD、 ab17、若有定义和语句: char s10;s=abcd;printf(%sn,s); 则结果是(以下u代表空格)A、输出abcd B、输出aC、输出abcduuuuu D、编译不通过18、函数调用:strcat( strcpy( str1,str2 ),str3 )的功能是( ) A、将串str1复制到串str2中后再连接到串str3之后;B、将串str1连接到串str2之后再复制到串str3之后;C、将串str2复制到串str1中后再将串str3连接到串str1之后;D、将串str2连接到串str1之后再将串str1复制到串str3中;19、执行如下程序段,当输入为I am时,输出的结果是( )。 char str80; scanf(“%s”,str); strcat(str,”sad!”); printf(“%s”,str); A、I am sad! B、Isad! C、I sad! D、sad!20、数组 int a34;共定义了_个数组元素。21、C语言中数组的下标下限为_。22、能够构成一个数组的元素需满足的特点是_;那么,构成结构体的成员可以是_。23、若在程序中用到“putchar”,应在程序开头写上包含命令 ,若在程序中用到“strlen()”函数时,应在程序开头写上包含命令 。24、符号”a”和a的区别是”a”是 ,而a是 。第五章 指针1、变量I的值为3,I的地址为1000,使p为指向I的指针变量,则下列赋值正确的是() A.&I=3 B.*p=3 C.*p=1000 D.p=&I2、下列说法中不正确的是() A.指针是一个变量 B.指针中存放的是地址值C.指针可以进行加、减等算术运算 D.指针变量不占用存储空3、若有定义: int *p4;则标识符p是()A.是一个指向整型变量的指针B.是一个指针数组名C.是一个指针,它指向一个含有四个整型元素的一维数组D.说明不合法4、以下程序中调用 scanf 函数给变量 a输入数值的方法是错误的,因为()。 main ( ) int *p , *q , a , b ; p = &a ; printf ( input a : ); scanf ( %d , *p) ; A.*p 表示的是变量 a 的值,而不是变量a 的地址。B.*p 表示的是指针变量 p 的地址。C.*p 表示的是指针变量 p 的值。D*p 只能用来说明p是一个指针变量。5、已有定义 int k = 2; int *p1, *p2, 且p1和p2均已指向变量k,下面不能正确执行的赋值语句是()。A. k = *p1 + *p2 ; B. p1 = p2; C. p2 = k ; D. k = *p1*(*p2) ;6、 若有定义: int a34; 则对a数组的第i行第j列(假设i, j已正确说明并赋值)元素值的正确引用为()。 A. * ( * ( a + i) + j) B. ( a + j) j C. * ( a + i + j)D. *(a +i ) +j7、若有以下定义,且 0 = i 6,则正确的赋值语句是( ) 。 int s46 , t 64 , (*p)6 ; A. p = t ;B. p = s i ;C. p = s ;D. p = t i ;8、若有定义: int a23 则对 a 数值的第i 行,第 j 列元素地址的正确引用为 ( )。A) *( a i + j ) B.a i + j C. *( a + j )D. (a + i )9、下面选项中正确的赋值语句是(设 char a5,*pa;)( )。 A p=abcd; B a=abcd; C *p=abcd; D *a=abcd;10、以下函数定义正确的形式是()。 A) fun(int x,int *y) B) fun(int x;int *y) C) fun(int x,int *y=0); D) fun(int x,*y)11、有如下程序,运行后的输出结果是。main( ) char a10=“123456789”; char *p; int i=8; p=a+i; printf(“%sn”,p-3);12、以下程序的输出结果是main() int i=3,j=2; char *a=DCBA; printf(%c%cn,ai,aj);14、 int y=1, x, *p, a =2,4,6,8,10;p=&a1;for(x=0;x3;x+)y + = * (p + x);printf(%dn,y); 程序的输出结果y的值是 。15、main( ) int a5=2,4,6,8,10 ,*P,* *k;p=a; k=&p;printf(%d,*(p+);printf(%dn,* *k); 程序的输出

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论