C语言程序设计复习题及答案.docx
- 文档编号:13743887
- 上传时间:2023-06-17
- 格式:DOCX
- 页数:27
- 大小:26.21KB
C语言程序设计复习题及答案.docx
《C语言程序设计复习题及答案.docx》由会员分享,可在线阅读,更多相关《C语言程序设计复习题及答案.docx(27页珍藏版)》请在冰点文库上搜索。
C语言程序设计复习题及答案
C语言程序设计复习题及答案
第一部分程序设计基本概念
1.1在TRUBOC环境中用RUN命令运行一个C程序时,所运行的程序的后缀是______。
1.2C语言源程序文件的后缀是_____,经过编译后,生成文件的后缀是_____,经过连接后,生成文件的后缀是_____。
1.3结构化程序由_____、_____、_____三种基本结构组成。
第二部分C程序设计的初步知识
一、选择题
2.1以下选项中正确的整型常量是
A)12. B)-20 C)1,000 D)4 5 6
2.2以下选项中正确的实型常量是
A)0 B)3. 1415 C)0.329×10
(2)(10的2次方) D).871
2.3以下选项中不正确的实型常量是
A)2.607E-1 B)0.8103e 2 C)-77.77 D)456e-2
2.4以下选项中不合法的用户标识符是
A)abc.c B)file C)Main D)PRINTF
2.5以下选项中不合法的用户标识符是
A)_123 B)printf C)A$ D)Dim
2.6C语言中运算对象必需是整型的运算符是
A)% B)/ C)!
D)**
2.7可在C程序中用作用户标识符的一组标识符是
A)void define WORD
B)as_b3 _123 If
C)For -abc case
D)2c DO SIG
2.8若变量已正确定义并赋值,符合C语言语法的表达式是
A)a=a+7; B)a=7+b+c,a++ C)int(12.3%4) D)a=a+7=c+b
2.9以下叙述中正确的是
A)a是实型变量,C允许进行以下赋值a=10,因此可以这样说:
实型变量中允许存放整型值。
B)在赋值表达式中,赋值号右边既可以是变量也可以是任意表达式。
C)执行表达式a=b后,在内存中a和b存储单元中的原有值都将被改变,a的值已由原值改变为b的值,b的值由原值变为0。
D)已有a=3,b=5。
当执行了表达式a=b,b=a之后,已使a中的值为5,b中的值为3。
第三部分、顺序结构
一、选择题
3.1若a、b、c、d都是int类型变量且初值为0,以下选项中不正确的赋值语句是
A)a=b=c=100; B)d++; C)c+b; D)d=(c=22)-(b++);
3.2以下选项中不是C语句的是
A){inti;i++;printf("%d\\n",i);}
B); C)a=5,c=10 D){;}
3.3以下合法的C语言赋值语句是
A)A=B=58 B)k=int(a+b); C)a=58,b=58 D)--i;
3.4以下程序的输出结果是
A)0 B)1 C)3 D)不确定的值
main()
{
intx=10,y=3;
printf("%d\\n",y=x/y);
}
3.5若变量已正确说明为int类型,要给a、b、c输入数据,以下不正确的输入语句是
A)read(a,b,c); B)scanf("%d%d%d",a,b,c);
C)scanf("%D%D%D",&a,&b,&c); D)scanf("%d%d%d",&a,&b,&c);
3.6若变量已正确说明为float类型,要通过以下赋值语句给a赋予10、b赋予22、c赋予33,以下不正确的输入形式是
A)10
scanf("%f%f%f",&a,&b,&c);
3.7若变量以正确定义,要将a和b中的数进行交换,下面不正确的语句组是
A)a=a+b,b=a-b,a=a-b; B)t=a,a=b,b=t;
C)a=t;t=b;b=a; D)t=b;b=a;a=t;
3.8若变量已正确定义,以下程序段的输出结果是
A)输出格式说明与输出项不匹配,输出无定值
B)5.17000 C)5.168000 D)5.169000
x=5.16894;
printf("%f\\n",(int)(x*1000+0.5)/(float)1000);
3.9若有以下程序段,c3中的值是
A)0 B)1/2 C)0.5 D)1
3.10若有以下程序段,intc1=1,c2=2,c3;
c3=c1/c2;其输出结果是
A)0,0,-10 B)0,0,5 C)-10,3,-10 D)3,3,-10
inta=0,b=0,c=0;
c=(a-=a-5),(a=b,b+3);
printf("%d,%d,%d\\n",a,b,c);
3.11当运行以下程序时,在键盘上从第一列开始输入9876543210
A)a=98,b=765,c=4321 B)a=10,b=432,c=8765
C)a=98,b=765.000000,c=4321.000000 D)a=98,b=765,c=4321.0
main()
{
inta;floatb,c;
scanf("%2d%3f%4f",&a,&b,&c);
printf("\\na=%d,b=%f,c=%f\\n",a,b,c);
}
3.12以下程序的输出结果是
A)a=%2,b=%5 B)a=2,b=5 C)a=%%d,b=%%d D)a=%d,b=%d
main()
{ inta=2,b=5;
printf("a=%%d,b=%%d\\n",a,b);
}
第四部分、选择结构
一、选择题
4.1下列运算符中优先级最高的运算符是
A)!
B)% C)-= D)&&
4.2下列运算符中优先级最低的运算符是
A)|| B)!
= C)<= D)+
4.3为表示关系x≥y≥z,应使用的C语言表达式是
A)(x>=y)&&(y>=z) B)(x>=y)AND(y>=z)
4.4设a、b和c都是int型变量,且a=3,b=4,c=5;则以下的表达式中,值为0的表达式是
A)a&&b B)a<=b C)a||b+c&&b-D)!
((a
c||1)
4.5以下程序的输出结果是
A)0 B)1 C)2 D)3
main()
{ inta=2,b=-1,c=2;
if(a
if(b<0) c=0;
else c+=1;
printf("%d\\n",c);
}
4.6以下程序的输出结果是
A)1 B)2 C)3 D)4
main()
{ intw=4,x=3,y=2,z=1;
printf("%d\\n",(w w: z z: x)); } 4.7若执行以下程序时从键盘上输入3和4,则输出结果是 A)14 B)16 C)18 D)20 main() { inta,b,s; scanf("%d%d",&a,&b); s=a; if(a s*=s; printf("%d\\n",s); } 4.8下面的程序片段所表示的数学函数关系是 -1(x<0) A)y= 0(x=0) 1(x>0) 1(x<0) B)y= -1(x=0) 0(x>0) 0(x<0) C)y= -1(x=0) 1(x>0) -1(x<0) D)y= 1(x=0) 0(x>0) y=-1; if(x! =0)y=1; if(x>0)y=1; elsey=0; 答案: 本题没有正确答案。 程序片段所表示的数学函数关系应该是 0(x<0) y= 0(x=0) 1(x>0) 4.9运行以下程序后,输出 A)**** B)&&&& C)####&&&& D)有语法错误不能通过编译 main() { intk=-3; if(k<=0)printf("****\\n") elseprintf("&&&&\\n"); } 4.10若a和b均是正整型变量,以下正确的switch语句是 A) switch(pow(a,2)+pow(b,2)) {case1: case3: y=a+b; break; case0: case5: y=a-b; } B) switch(a*a+b*b); {case3: case1: y=a+b;break; case0: y=b-a;break; } C) switcha {default: x=a+b; case10: y=a-b;break; case11: x=a*d;break; } D) switch(a+b) {case10: x=a+b;break; case11: y=a-b;break; } 答案: 没有正确答案。 如果C选项改为: switch(a) {default: x=a+b; case10: y=a-b;break; case11: x=a*b;break; } 则答案可以选择C 第五部分、循环结构 一、选择题 5.1以下程序段的输出结果是 A)9 B)1 C)11 D)10 intk,j,s; for(k=2;k<6;k++,k++) { s=1; for(j=k;j<6;j++) s+=j; } printf("%d\\n",s); 5.2以下程序段的输出结果是 A)12 B)15 C)20 D)25 inti,j,m=0; for(i=1;i<=15;i+=4) for(j=3;j<=19;j+=4)m++; printf("%d\\n",m); 5.3以下程序段的输出结果是 A)10 9 8 B)9 8 7 C)10 9 8 7 D)9 8 7 6 intn=10; while(n>7) { n--; printf("%d\\n",n); } 5.4以下程序段的输出结果是 A)1 B)30 C)1-2 D)死循环 intx=3; do { printf("%3d",x-=2);} while(! (--x)); 5.5以下程序段的输出结果是 A)15 B)14 C)不确定 D)0 main() { inti,sum; for(i=1;i<6;i++)sum+=sum; printf("%d\\n",sum); } 5.6以下程序段的输出结果是 A)741 B)852 C)963 D)875421 main() { inty=10; for(;y>0;y--) if(y%3==0) { printf("%d",--y);continue; } } 5.7若x是int型变量,以下程序段的输出结果是 A)**3 ##4 **5 B)##3 **4 ##5 C)##3 **4##5 D)**3##4 **5 for(x=3;x<6;x++) printf((x%2)? ("**%d"): (##%d\\n"),x); 5.8以下程序的输出结果是 A)*#*#*#$ B)#*#*#*$ C)*#*#$ D)#*#*$ main() { inti; for(i=1;i<=5;i++) { if(i%2) printf("*"); else contionue; printf("#"); } printf("$\\n"); } 5.9以下叙述正确的是 A)do_while语句构成的循环不能用其它语句构成的循环来代替。 B)do_while语句构成的循环只能用break语句退出。 C)用do_while语句构成循环时,只有在while后的表达式为非零时结束循环。 D)用do_while语句构成循环时,只有在while后的表达式为零时结束循环。 5.10以下程序的输出结果是 A)3981 B)4284 C)2668 D)2870 main() { intx,i; for(i=1;i<=100;i++) { x=i; if(++x%2==0) if(++x%3==0) if(++x%7==0) printf("%d",x); } printf("\\n"); } 二、填空题 5.11当执行以下程序段后,i的值是____、j的值是____、k的值是____。 inta,b,c,d,i,j,k; a=10; b=c=d=5; i=j=k=0; for(;a>b;++b)i++; while(a>++c)j++; dok++; while(a>d++); 5.12以下程序段的输出结果是____。 intk,n,m; n=10;m=1;k=1; while(k<=n) m*=2; printf("%d\\n",m); 5.13以下程序的输出结果是____。 main() { intx=2; while(x--); printf("%d\\n",x); } 5.14以下程序段的输出结果是____。 inti=0,sum=1; do{sum+=i++;}while(i<5); printf("%d\\n",sum); 第六部分、字符型数据 一、选择题 6.1C语言中的简单数据类型有 A)整型、实型、逻辑型 B)整型、实型、字符型 C)整型、字符型、逻辑型 D)整型、实型、逻辑型、字符型 6.2C语言中,字符(char)型数据在微机内存中的存储形式是 A)反码 B)补码 C)EBCDIC码 D)ASCII码 6.3设有语句chara=\'\'\\72\'\';,则变量a A)包含1个字符 B)包含2个字符 C)包含3个字符 D)说明不合法 6.4C语言中不合法的字符常量是 A)\'\'\\0xff\'\' B)\'\'\\65\'\' C)\'\'&\'\' D)\'\'\\028\'\' 答案: 本题A)和D)选项都是不合法的字符常量。 若A)选项改为\'\'\\xff\'\',则正确。 6.5C语言中不合法的字符串常量是 A)"\\121" B)\'\'y=\'\' C)"\\n\\n" D)"ABCD\\x6d" 第七部分、函数 一、选择题 7.1以下说法中正确的是 A)C语言程序总是从第一个定义的函数开始执行 B)在C语言程序中,要调用的函数必须在main函数中定义 C)C语言程序总是从main函数开始执行 D)C语言程序中的main函数必须放在程序的开始部分 7.2以下函数的类型是 A)与参数x的类型相同 B)void类型 C)int类型 D)无法确定 fff(floatx) { printf("%d\\n",x*x);} 7.3以下函数调用语句中,含有的实参个数是 A)1 B)2 C)4 D)5 func((exp1,exp2),(exp3,exp4,exp5)); 7.4以下程序的输出结果是 A)11 B)20 C)21 D)31 fun(inta,intb) { intc; c=a+b; returnc; } main() { intx=6,y=7,z=8,r; r=func((x--,y++,x+y),z--); printf("%d\\n",r); } 7.5以下程序的输出结果是 A)-1 B)0 C)1 D)2 main() { inti=2,p; p=f(i,i+1); printf("%d",p); } intf(inta,intb) { intc; c=a; if(a>b)c=1; else if(a==b) c=0; else c=-1; return(c); } 7.6以下程序的输出结果是 A)0 B)1 C)6 D)无定值 fun(inta,intb,intc) { c=a*b; } main() { intc; fun(2,3,c); printf("%d\\n",c); } 7.7以下程序的输出结果是 A)5.500000 B)3.000000 C)4.000000 D)8.25 doublef(intn) { inti; doubles; s=1.0; for(i=1;i<=n;i++)s+=1.0/i; returns; } main() { inti,m=3;floata=0.0; for(i=0;i printf("%f\\n",a); } 二、填空题 7.8以下程序的输出结果是____。 unsignedfun6(unsignednum) { unsignedk=1; do { k*=num%10; num/=10; } while(num); returnk; } main() { unsignedn=26; printf("%d\\n",fun6(n); } 答案: 12 7.9以下程序的输出结果是____。 doublesub(doublex,doubley,doublez) { y-=1.0; z=z+x; returnz; } main() { doublea=2.5,b=9.0; printf("%f\\n",sub(b-a,a,a)); } 答案: 9.000000 7.10以下程序的输出结果是____。 fun1(inta,intb) { intc; a
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 语言程序设计 复习题 答案