收藏 分销(赏)

C语言练习题及答案1.doc

上传人:1587****927 文档编号:1362628 上传时间:2024-04-24 格式:DOC 页数:75 大小:248KB 下载积分:16 金币
下载 相关 举报
C语言练习题及答案1.doc_第1页
第1页 / 共75页
C语言练习题及答案1.doc_第2页
第2页 / 共75页


点击查看更多>>
资源描述
C 语 言 练 习 题 1 第一章 C语言概述 1、所有C函数得结构都包括得三部分就是(   C ) A.语句、花括号与函数体 B.函数名、语句与函数体 ﻩC.函数名、形式参数与函数体 D.形式参数、语句与函数体 2、C语言中主函数得个数就是(   B  ) A.2个   B.1个    C.任意个     D.10个 3、下面可能不影响程序正常运行得就是(   C   )   A.语法错误   B.逻辑错误   C.警告提示   D.算法错误 4、一个C程序得执行就是从(   A ) A、 本程序得main()函数开始,到main()函数结束、 B、 本程序文件得第一个函数开始,到本程序文件第一个函数结束、 C、 本程序文件得第一个函数开始,到本程序main函数结束、 D、  本程序得main()函数开始,到本程序文件得最后一个函数结束、 5、C程序由( C   )组成。 A.子程序       B.主程序与子程序      C.函数     D.过程 6、下列关于C语言注释得叙述中错误得就是(  D )。 A.以“/*”开头并以“*/”结尾得字符串为C语言得注释内容。 B.注释可出现在程序中得任何位置,用来向用户提示或解释程序得意义。 C.程序编译时,不对注释作任何处理。 D.程序编译时,需要对注释进行处理。 7、C语言源程序经过编译后,生成文件得后缀就是____C_____。ﻫ  A、、c   B、、exe    C、、obj   D、、cc 8、以下说法中正确得就是____C_____。ﻫA、C语言程序总就是从第一个函数开始执行ﻫB、在C语言程序中,要调用函数必须在main()函数中定义ﻫC、C语言程序总就是从main()函数开始执行ﻫD、C语言程序中得main()函数必须放在程序得开始部分 9、以下叙述中正确得就是__A____。 A:C程序中注释部分可以出现在程序中任意合适得地方   B:花括号"{"与"}"只能作为函数体得定界符 C:构成C程序得基本单位就是函数,所有函数名都可以由用户命名 D:分号就是C语句之间得分隔符,不就是语句得一部分 第二章 变量与表达式 第一节  简单表达式 1、算术运算符及其表达式 1、C语言中运算对象必须就是整型得运算符就是_____A______。ﻫA、%  B、*     C、+    D、 / 2、下面运算符优先级最高得就是 (C )ﻫA、<=     B、=   C、%     D、&& 3、下面程序     main() {   int x=10,y=3;     printf("%d\n",y=x/y);     } 得输出就是___C___。  A:0  B:1   C:3 D:不确定得值                                                                                                                                                                                                                               4、执行下面程序段后,c3中得值就是_A____ int c1=1 , c2=2 , c3; c3=c1/c2;   A:0  B:1/2 C:0、5 D:1 2、C语言表达式书写规则 1、以下变量x、y、z均为double类型且已正确赋值,不能正确表示数学式子x/(y*z)得C语言表达式就是___A___。 A:x/y*z B:x*(1/(y*z))   C:x/y*1/z D:x/y/z 2、设有定义:float a=2,b=4,h=3;,以下C语言表达式中与代数式1/2(a+b)h计算结果不相符得就是___B___。   A:(a+b)*h/2    B:(1/2)*(a+b)*h C:(a+b)*h*1/2 D:h/2*(a+b) 第二节 变量 1、变量 1、下列关于C语言得关键字得叙述中错误得就是(   C   ) A.关键字就是C语言规定得具有特定意义得字符串,通常也称保留字。 B.用户定义得标识符不应与关键字相同。 C.ANSI C标准规定得关键字有64个。 D.ANSI C标准规定得关键字有32个。 2、下面关于C语言用户标识符得描述,正确得就是( D  )  A、 不区分大小写    B、 用户标识符不能描述常量  C、 类型名也就是用户标识符   D、 用户标识符可以作为变量名 3、以下(  D  )就是正确得变量名。 A、  a、bee      B、 -p11  C、 int    D、  p_11 4、下面属于C语言标识符得就是(    D  ) A. 2ab     B、  f      C、 ?b  D、  _a12 5、下列保留字中用于构成循环结构得就是( B     ) A、  if B、  while C、 switch    D、  default 6、以下定义语句中正确得就是(   C   )。 A、 char a='A'b='B'; B、 float a=b=10、0; C、 int a=10,*b=&a;    D、 float *a,b=&a; 7、下面标识符中,不合法得用户标识符为     (   D  ) A) Pad    B) a_10   C) _12ab D) int 8、C语言中得标识符只能由字母、数字与下划线三种字符组成,且第一个字符_____C____。 A、必须为下划线       B、可以就是字母、数字与下划线中任一种字符 C、必须为字母或下划线   D、必须为字母 9、请选出可用作C语言用户标识符得一组标识符____B__。    ① void ② a3_b3   ③ For  ④ 2a   define    _123        _abc   DO      WORD       IF   case  sizeof  A:①   B:②   C:③   D:④ 9、以下选项中合法得用户标识符就是___B___。   A:long   B:_2Test    C:3Dmax    D:A、dat 10、以下不能定义为用户标识符得就是__D____。   A:scanf B:Void  C:_3_  D:int 11、在C语言中,如果下面得变量都就是int类型,则输出结果就是__A____ sum=pad=5; pad=sum++,pad++,++pad; printf("%d\n",pad); A:7   B:6 b  C:5 D:4 2、常量与符号常量 1、以下( B )就是错误得整型常量。 A、 -0xcdf B、 018   C、 0xe D、 011 2、下列符号中用来表示C语言中得回车换行得就是(   B  )   A、  \”          B、 \n           C、  \b          D、 \\ 3、以下( C   )就是正确得字符常量。   A、 "c"   B、 '\\''  C、 'W'  D、 "\32a" 4、下面不正确得字符串常量就是        (  A   )   A) 'abc'       B) "12'12"     C) "0"    D) " " 6、以下列出C语言常量中,错误得就是__B____。 A:OxFF    B:1、2e0.5 C:2L  D:'\72' 7、以下选项中,非法得字符常量就是___C___。 A:'\t' B:'\17' C:"\n" D:'\xaa' 第三节 数据类型 1、整型数据 1、以下选项中不属于C语言得类型得就是__D____。 A:signed short int    B:unsigned char    C:singed long D:long short 2、以下选项中可作为C语言合法整数得就是___C___。   A:10110B  B:0386  C:0Xffa  D:x2a2 2、实型数据 1、以下选项中属于C语言得数据类型就是___C___。  A:复数型 B:逻辑型  C:双精度型 D:集合型 2、若已定义x与y为double类型,则表达式x=1,y=x+3/2得值就是___C___。   A:1   B:2   C:2、0    D:2、5 3、设变量x为float型且已赋值,则以下语句中能将x中得数值保留到小数点后两位,并将第三位四舍五入得就是___C___。 A:x=x*100+0、5/100、0;        B:x=(x*100+0、5)/100、0 C:x=(int)(x*100+0、5)/100、0;   D:x=(x/100+0、5)/100、0; 4、以下符合C语言语法得实型常量就是__C____。   A:1、2E0、5   B:3、14159E   C:、5E-3   D:E15 3、字符型数据 1、判断char型变量ch就是否为大写字母得正确表达式就是____C_____。 A、‘A’<=ch<=‘Z’      B、‘A’<=ch and ch<=‘Z’ ﻫC、‘A’<=ch && ch<=‘Z’ D、‘A’<=ch || ch<=‘Z’ 2、 设有语句char a='\72';则变量a ( A ) 。ﻫA)包含1个字符 B)包含2个字符 C)包含3个字符 D)说明不合法 3、 判断变量ch中得字符就是否为数字字符,最简单得正确表达式就是( D  )。 A)ch>=0&&ch<=9ﻩﻩﻩ B)’0’<=ch<=’9’ C)ch>=’0’||ch<=’9’ﻩ D)ch>=’0’&&ch<=’9’ 4、设有说明语句: char a = '\72'; 则变量a __A____。 A:包含1个字符    B:包含2个字符 C:包含3个字符  D:说明不合法 5、已知大写字母A得ASCII码就是65,小写字母a得ASCII码就是97,则用八进制表示得字符常量'\101'就是___A___。 A:字符A   B:字符a C:字符e    D:非法得常量 6、若有以下定义与语句: char c1='b',c2='e'; printf("%d,%c\n",c2-c1,c2-'a'+'A'); 则输出结果就是___B____ A:2,M B:3,E  C:2,e   D:输出结果不确定 7、已知字符A得ASCII码为十进制得65,下面程序得输出就是__A___ main() { char ch1,ch2; ch1='A'+'5'-'3'; ch2='A'+'6'-'3'; printf("%d,%c\n",ch1,ch2); } A:67,D B:B,C  C:C,D D:不确定得值 8、若变量c为char类型,能正确判断出c为小写字母得表达式就是D  A:'a'<=c<= 'z'       B:(c>= 'a')||(c<= 'z') C:('a'<=C)and ('z'>=c) D:(c>= 'a')&&(c<= 'z') 4、类型转换 1、表达式 ‘f’+ 10 得类型就是____A_______。 A、int      B、char   C、double   D、float 2、设a与b均为double型常量,且a=5、5、b=2、5,则表达式(int)a+b/b得值就是___D___。   A:6、500000    B:6 C:5、500000 D:6、000000 第四节 赋值语句 1、若有定义:int a=2; 则正确得赋值表达式就是(   A )。  A、 a-=(a*3) B、 double(-a)   C、 a*3   D、 a*4=3 2、若a为int类型,且其值为3,则执行完表达式a+=a-=a*a后,a得值就是( C   )   A) –3        B) 9     C) –12  D) 6 3、请选出合法得C语言赋值语句__B____。  A:a=b=58 B:i++;    C:a=58,b=58    D:k=int(a+b); 4、若变量已正确定义并赋值,下面符合C语言得表达式就是___B___。   A:a:=b+1  B:a=b=c+2   C:int 18、5%3 D:a=a+7=c+b 5、若变量a、i已正确定义,且i已正确赋值,合法得语句就是__B____。   A:a==1 B:++i;  C:a=a++=5  D:a=int(i); 6、以下非法得赋值语句就是__C____。 A:n=(i=2,++i);  B:j++;  C:++(i+1); D:x=j>0; 7、以下选项中非法得表达式就是___D___。 A:0<=x<100 B:i=j==0  C:(char)(65+3)  D:x+1=x+1 8、若以下选项中得变量已正确定义,则正确得赋值语句就是___C___。   A:x1=26、8%3; B:1+2=x2; C:x3=0x12;  D:x4=1+2=3; 第五节 复杂表达式 1、自增、自减运算符 1、设x、y均为整型变量,且x=10,y=3,则以下语句得输出结果就是printf(“%d,%d\n”,x--,--y);(   D  )   A)10,3     B)9,3     C)9,2      D)10,2 2、设i为整型变量,且值为100,则语句++i;执行后i得值就是____B_____。ﻫA、100    B、101    C、102    D、语句错 3、 以下程序得输出结果就是 (  B  ) 。ﻫ# include <stdio、h> main() {  int i=010 , j = 10;ﻫ printf("%d,%d\n",+ +i , j - -); }ﻫ A) 11,10 B) 9,10 C) 010,9 D) 10,9ﻫ4、下列程序得运行结果就是(  A   )      # define  A  5      # define  B  A+1      main( )      {int a;       a=B;       printf(″%d\n″a--);      }   ﻩA、6  B、5  ﻩC、4  D、出错 5、以下程序得输出结果就是___A___。    #include<stdio、h>   main()   {   int i=10,j=10; printf("%d,%d\n",++i,j--); }                                                                                                                                                                                           A:11,10   B:9,10    C:010,9   D:10,9                                                                                          6、有如下程序 main() {  int y=3,x=3,z=1;   printf("%d %d\n",(++x,y++),z+2); } 运行该程序得输出结果就是___D___。 A:3   4  B:4  2 C:4 3 D:3   3 7、设x,y均为int型变量,且x=10,y=3,则以下数据得输出结果就是 D printf("%d,%d\n",x--,--y)。   A:10,3 B:9,3  C:9,2  D:10,2 8、下列关于单目运算符++、--得叙述中正确得就是___D___。 A:它们得运算对象可以就是任何变量与常量  B:它们得运算对象可以就是char型变量与int型变量,但不能就是float型变量  C:它们得运算对象可以就是int型变量,但不能就是double型变量与float型变量 D:它们得运算对象可以就是char型变量、int型变量与float型变量 9、main() { int m=3,n=4,x; x=-m++; x=x+8/++n;   printf("%d\n",x); } 程序运行后得输出结果就是__D____。 A:3 B:5  C:-1 D:-2 10、有以下程序 main() { char a='a',b; printf("%c,",++a);   printf("%c\n",b=a++); } 程序运行后得输出结果就是___A___。  A:b,b  B:b,c C:a,b D:a,c 11、若有以下定义与语句: int a=5 a++; 此处表达式a++得值就是__B__   A:7  B:6 C:5  D:4 2、关系运算符与关系表达式 1、设有int x,y;  以下语句判断x与y就是否相等,正确得说法就是该语句(   B ) if (x=y)  printf(" x is equal to y、");  A、 语法错 ﻩB、 不能判断x与y就是否相等 C、 编译出错 D、 能判断x与y就是否相等 2、表达式:10!=9得值就是___D___。  A:true  B:非零值  C:0 D:1 3、逻辑运算符与逻辑表达式 1、能表示条件0≤x ≤100得表达式就是        (   D  ) A) 0<= x <=100            B、 x >=0, x<=100   C) 0≤x ≤100      D) x>=0&& x<=100 2、设有:int a=1,b=2,c=3,d=4,m=2,n=2; 执行 (m=a>b) && (n=c>d) 后n得值为     (  C )   A) 0        B) 1     C) 2     D) 3 3、能正确表示a与b同时为正或同时为负得逻辑表达式就是___D______。   A、(a>=0‖b>=0)&&(a<0‖b<0)   B、(a>=0&&b>=0)&&(a<0&&b<0)  C、(a+b>0)&&(a+b<=0)       D、a*b>0 4、设有定义int a = 1,b = 2, c = 3;则下面得值为1得表达式就是___A_______。ﻫ   A、a&&7   B、a<b&&!c  C、a&&!b     D、b〉= c 5、设a、b与c都就是int型变量,且a=3、b=4、c=5,则下面得表达式中,值为0得表达式就是___D___。 A:'a'&&'b' B:a<=b   C:a||+c&&b-c    D:!((a<b)&&!c||1)                                                                                      6、设a=5、b=6、c=7、d=8、m=2、n=2,执行   (m=a>b)&&(n=c>d) 后n得值为___B___。 A:1  B:2   C:3    D:4                                                                                                                       7、有如下程序段 int a=14,b=15,x; char c='A'; x=(a && b) && (c<'B'); 执行该程序段后,x得值为___D___。   A:true B:false C:0 D:1 8、设x、y、t均为int型变量,则执行语句:x=y=3;t=++x||++y;后,y得值为____C__。 A:不定值  B:4 C:3  D:1 9、 以下程序得输出结果就是__A____。 main() { int a=4,b=5,c=0,d; d=!a&&!b||!c; printf("%d\n",d) } A:1  B:0 C:非0得数  D:-1 10、有以下程序 main() { int a=1,b=2,m=0,n=0,k;   k=(n=b>a)||(m=a<b); printf("%d,%d\n",k,m); } 程序运行后得输出结果就是__C____。   A:0,0  B:0,1  C:1,0  D:1,1 11、有以下程序 main() {  int i=1, j=1, k=2; if ( (j++ || k++) && i++) printf("%d,%d,%d\n", i, j, k); } 执行后输出结果就是   C  A:1,1,2 B:2,2,1 C:2,2,2 D:2,2,3 12、以下程序得输出结果就是  A   main() { int a=4,b=5,c=0,d;      d=!a&&!b||!c;      printf("%d\n",d);    } A:1  B:0 C:非0得数  D:-1 4、 逗号运算符 1、若x,i,j,k都就是int型变量,则执行下面表达式后x得值为____C____ﻫ    x=(i=11,j=22,k=33) A、 11     B、22    C、33  D、66 2、若x与y都就是int型变量,x=100、y=200,且有下面得程序片段 printf("%d",(x,y) ); 上面程序片段得输出结果就是__A____。   A:200 B:100  C:100   200 D:输入格式符不够,输出不确定得值 3、若执行以下程序段,其输出结果就是__B____ int a=0 , b=0 , c=0; c=(a-=a-5) , (a=b,b+3) ; printf("%d , %d , %d\n" , a,b,c); A:3,0,-10 B:0,0,5  C:-10,3,-10  D:3,0,3 第六节 基本输入输出语句 2、格式化输入与输出函数 1、若有说明语句:int a,b,c,*d=&c;,则能从键盘读入三个整数分别赋给变量a、b、c得语句就是(    A  )  A、 scanf("%d%d%d",&a,&b,d);   B、 scanf("%d%d%d",&a,&b,&d);    C、 scanf("%d%d%d",a,b,d);        D、 scanf("%d%d%d",a,b,*d); 2、调用scanf(“%d,%d”,&a,&b);时,正确得键盘输入就是 (  A  )   A) 10,20   B) a=10,b=20   C) 10:20 D) 10 20 3、下面得程序段      int i = 6;ﻫ printf (“***%-4d***\n”, i);ﻫ  得输出就是______B______。   A、***   6***  B、***6 ***         C、***0006*** D、出错 4、 已知在ASCII代码中,字母A得序号为65,以下程序得输出得结果就是 (  D ) 。 # include <stdio、h> main()ﻫ{ char c1='A', c2='Y';ﻫ printf("%d,%d\n",c1,c2); } A) 因输出格式不合法,输出错误信息 B)65,90  C)A,Y   D)65,89 5、以下程序得输出结果就是__D____。 main()  { int k=17; printf("%d,%o,%x\n",k,k,k); } A:17,021,0x11 B:17,17,17 C:17,0x11,021 D:17,21,11 6、若变量已正确说明为float类型,要通过语句scanf("%f %f %f",&a,&b,&c);给 a赋予10、0,b赋予22、0,c赋予33、0,不正确得输入形式就是:___B___。  A:10 22 33 B:10、0,22、0,33、0 C:10、0 22、0 33、0 D:10  22 33 7、X、Y、Z被定义为int型变量,若从键盘给X、Y、Z输入数据,正确得输入语句就是___B___。   A:INPUT X,Y,Z;           B:scanf("%d%d%d",&X,&Y,&Z); C:scanf("%d%d%d",X,Y,Z);      D:read("%d%d%d",&X,&Y,&Z); 8、已知i、j、k为int型变量,若从键盘输入:1,2,3↙,使i得值为1、j得值为2、k得值为3,以下选项中正确得输入语句就是__C____。 A:scanf("%2d%2d%2d",&i,&j,&k);   B:scanf(""%d %d  %d",&i,&j,&k);   C:scanf("%d,%d,%d",&i,&j,&k);      D:scanf("i=%d,j=%d,k=%d",&i,&j,&k); 9、设有定义:long x=-123456L;,则以下能够正确输出变量x值得语句就是___B___。   A:printf("x=%d\n",x);   B:printf("x=%ld\n",x); C:printf("x=%8dL\n",x);       D:printf("x=%LD\n",x); 10、有以下程序段 int m=0,n=0; char c='a'; scanf("%d%c%d",&m,&c,&n); printf("%d,%c,%d\n",m,c,n); 若从键盘上输入:10A10↙,则输出结果就是___A___。 A:10,A,10  B:10,a,10  C:10,a,0  D:10,A,0 11、有以下程序 main() {  int x=102,y=012; printf("%2d,%2d\n",x,y); } 执行后输出结果就是__C____。   A:10,01 B:02,12  C:102,10 D:02,10 12、有以下程序 main() { char a,b,c,d; scanf("%c,%c,%d,%d",&a,&b,&c,&d);   printf("c,%c,%c,%c\n",a,b,c,d); } 若运行时从键盘上输入:6,5,65,66↙。则输出结果就是___A___。   A:6,5,A,B  B:6,5,65,66 C:6,5,6,5  D:6,5,6,6 13、有以下程序 main() { unsigned int a; int b=-1;  a=b; printf("%u",a); } 程序运行后得输出结果就是___B___。 A:-1 B:65535 C:32767 D:-32768 14、下面程序得输出就是__D____ main() { int k=11; printf("k=%d,k=%o,k=%x\n",k,k,k); } A:k=11,k=12,k=13 B:k=11,k=13,k=13 C:k=11,k=013,k=oXb D:k=11,k=13,k=b 15、若有定义:int x,y; char a,b,c; 并有以下输入数据(此处<CR>代表换行): 1 2 <CR> A B C<CR> 则能给x赋整数1,给y赋数2,给a赋字符A,给b赋字符B,给c赋字符C得正确程序段就是___C____ A:scanf("x=%d y=%d",&x,&y); a=getchar(); c=getchar(); B:scanf("%d%d",&x,&y); a=getchar(); b=getchar(); c=getchar(); C:scanf("%d%d%c%c%c",&x,&y,&a,&b,&c); D:scanf("%d%d%c%c%c%c%c%c",&x,&y,&a,&a,&b,&b,&c,&c); 16、设i就是int型变量,f就是float型变量,用下面得语句给这两个变量输入值: scanf("i=%d,f=%f",&i,&f); 为了把100与765、12分别赋给i与f,则正确得输入为 B A:100<空格>765、12<回车>  B:i=100,f=765、12<回车> C:100<回车>765、12<回车>   D:x=100<回车>,y=765、12<回车>   第七节 顺序结构程序设计 1、C语言中用于结构化程序设计得三种基本结构就是___A___。  A:顺序结构、选择结构、循环结构   B:if、switch、break   C:for、while、do-while        D:if、for、continue 第三章 控制语句 第一节if语句 1、if…else语句得三种形式 1、以下if语句错误得就是(     A    ) A、 if (x<y) x++; y++; else x--; y--; B、 if (y) x+=y;  C、 if (x>y);        D、 if (x==5)  scanf ("%d",&x); else x++; 2、 两次运行下面得程序,如果从键盘上分别输入6与4,则输出结果就是 A main( ) { int x; scanf("%d",&x); if(x + + >5) printf("%d",x); else printf("%d\n",x - -); }ﻫA) 7与5  B) 6与3  C) 7与4 D) 6与4 3、若执行下面得程序时从键盘上输入3与4,    main()   { int a,b,s;     scanf("%d %d",&a,&b);     s=a;     if(a<b)s=b;     s=s*s;          printf("%d\n",s);   } 则输出就是__B____。  A:14 B:16     C:18       D:20                                                                                                 
展开阅读全文

开通  VIP会员、SVIP会员  优惠大
下载10份以上建议开通VIP会员
下载20份以上建议开通SVIP会员


开通VIP      成为共赢上传

当前位置:首页 > 通信科技 > 开发语言

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        抽奖活动

©2010-2026 宁波自信网络信息技术有限公司  版权所有

客服电话:0574-28810668  投诉电话:18658249818

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :微信公众号    抖音    微博    LOFTER 

客服