C语言复习题给学生本科64学时.docx
- 文档编号:28601965
- 上传时间:2023-07-19
- 格式:DOCX
- 页数:39
- 大小:32.08KB
C语言复习题给学生本科64学时.docx
《C语言复习题给学生本科64学时.docx》由会员分享,可在线阅读,更多相关《C语言复习题给学生本科64学时.docx(39页珍藏版)》请在冰豆网上搜索。
C语言复习题给学生本科64学时
C语言复习题
第一章知识点
1下列变量名中是否合法
A B.C.TomB 3a6bC _6a7bD $ABC
以下是否为正确的C语言标识符
A #defineB _123C %dD \n
2C语言的基本单位是函数
3C语言程序总是从main()【或主函数】开始执行,C源程序经编译和连接后才可直接运行产生结果;且C语言程序有且仅有一个main函数;
4C源程序文件的扩展名为 .c,经过编译后生成文件的后缀是.OBJ,经过链接后生成文件的后缀是.EXE。
5C语言源程序的语句分隔符是;。
6C语言程序开发的四个步骤是编辑、编译、连接、运行。
7在一个C源程序中,注释部分以/*开始,并且以*/结束。
8在C程序中,main()函数的位置是可以任意位置摆放
9.在对一个C程序进行编译的作用之一是,可发现注释中的拼写错误;
10.数制转换,如:
(101)10=()2 ,(0.1)8=()16
第二章知识点
1以下哪些是正确的整型常量
A 12B -20C 1,000D 456
2整型变量x=1,y=3,经下列计算后,x的值不等于6的是哪个?
A x=(x=1+2,x*2)B x=y>2?
6:
5C x=8-(--y)-(--y)D x=y*4.8/2
3在C语言中,错误的int类型的常数是哪个?
A 32768B 0C 037D 0Xaf
4逗号表达式"(a=3*5,a*4),a+15"的值是多少?
A 15B 60C 30D 不确定
5字符型常量在内存中存放的是【ASCⅡ代码】
6若有floatx;则sizeof(x)和sizeof(float)两种描述【都正确】
7有整型变量x,单精度变量y=5.5,表达式:
x=(float)(y*3+((int)y)%4)执行后,x的值为【17】
8在C语言中运算对象必须是整型的运算符是【%】
9若x、a、b和。
均是int型变量,则执行表达式x=(a=1,b=2)后的结果为2
10下列关于C语言的叙述错误的是【大写字母和小写字母的意义相同】
11C语句x*=y+2;还可以写成【x=x*(y+2);】
12若有以下定义:
intm=5,y=2;则计算表达式y+=y-=m*=y后y的值是【-16】.
13结构化程序设计的基本结构有三种,分别是【顺序结构、分支结构和循环结构】。
14若有inta=5,c=4;则表达式(——a==++c)?
——a:
c++的值是5,此时c的存储单元的值为【6】.
15若有说明语句:
intx=1,y=0;则表达式x>(y+x)?
10:
12.5>y++?
’a’:
’a’的值为【97】.
16若有intx=7,则表达式x+=x-=x+x;执行后,x的值为【-14】。
17设inta=1,b=2,c=3,d;执行d=!
(a+b+C)后,d的结果是【0】
18设intx=10,y,z;执行y=z=x;x=y==z后,变量x的结果是【1】。
19设intx=9,y=8;表达式x==y+1的结果是【0】.
20若x,a都是int型变量,则表达式x=(a=4,6*2)的值是【12】,表达式x=a=4,6*2的值是【12】。
21若a是int型变量,则表达式(a=4*5,a*2),a+6的值是【26】。
22有inta;则执行a=25/3%3;后,a=【2】。
23若intb=7;floata=2.5,c=4.7;则表达式a+(int)(b/3*(int)(a+c)/2)%4的值是【5.5】。
24若intx=12,n=5;则表达式x%=(n%=2)的值是【0】。
25已知字母b的ascii码为98,且charch;则表达式ch=’b’+’8’-‘3’的值为【103】。
26,号运算符得结合方向为自左向右的
27与条件表达式"(n)?
(c++):
(c--)"中的表达式(n)等价的表达式是 (n!
=0)。
28C语言中,所有的C语言关键字必须小写。
29.检查以下的C语言标识符的正确性:
A intB a_1_2C ab1exeD _xE printF i\am
30检查以下的C语言的关键字的正确性:
auto,enum,include switch,typedef,continue,signed,union,scanf if,struct,type
default, register,enum,external
31字符串""的长度是0
32如果inta=1,b=2,c=3,d=4;则条件表达式"a
a:
c c: d"的值是1 33为求出s=10! 的值,则变量s的类型应当为ong 34已知inti=10;表达式"20-0<=i<=9"的值是1 35在32位的计算机中,一个字长等于1个字节。 36设y是int型变量,判断y为奇数的关系表达是(y%2)==1. 37计算机机领域中,通常用英文单词“Byte”表示字节。 38表示“整数x的绝对值大于5”时值为“真”的C语言表达式是x>5||x<-5. 39设有以下变量定义,并已赋确定的值 charw;intx;floaty;doublez; 则表达式: w*x+z-y所求得的数据类型为: double. 40设x和y均为int型变量,且x=1,y=2,则表达式1.0+x/y的值为1。 41若已知a=10,b=20,则表达式! a*b的值是1。 第三章知识点 1有程序段: intx; scanf(“%d\n”,&x); printf(x%2==0? “evennumber%d”: “oddnumber%d”,x,x); 若输入3,则printf语句【输出oddnumber3】 2以下程序的输出结果是: (1)main() {intsum,pad; sum=pad=5; pad=sum++; pad++; ++pad; printf(“%d”,pad); }【7】 3下面程序的输出结果是 #include main() {intx=10; {intx=20; printf("%d,",x); } printf("%d\n",x); }【20,10】 4以下程序的输出结果是: main() { inta=177; printf("%o\n",a); }【261】。 5以下程序的输出结果是 main() {inta=0 a+=(a=8); printf("%d\n",a); }【16】 6以下程序输出的结果是 main() {inta=5,b=4,c=3,d; d=(a>b>c); printf("%d\n",d); }【0】 7以下程序运行后的输出结果是 main() {charc;intn=100; floatf=10;doublex; x=f*=n/=(c=50); printf("%d%f\n",n,x); }【220】 8以下程序运行后的输出结果是 main() {inta,b,c; a=25; b=025; c=0x25; printf("%d%d%d\n",a,b,c); }【252137】 9对于语句scanf(“%f︼︼%f,z=%f”,&x,&y,&z);,其合法的输入形式为 14.7︼︼︼2.0,z=15(其中的︼表示空格) 10使用语句scanf("x=%f,y=%f",&x,&y);输入变量x、y的值(︼代表空格),正确的输入是: x=1.25,y=2.4 11以下程序的输出结果是: n=65015 main() {unsignedintn; inti=-521; n=i; printf("n=%u\n",n); } 12执行语句printf("%x",-1);屏幕显示: ffff。 13已知longi=32768;执行语句printf("%d",i);屏幕显示: -32768 14以下程序的输出结果是八进制数261 main() {inta=177; printf("%o\n",a); } 15语句: x++;++x;x=x+1;x=l+x;,执行后都使变量x中的值增1,与上述语句功能相同的赋值语句(不得与列举的相同)有x+=1等. 16以下程序的输出结果是_0_ main() {unsignedshorta=65536;intb; printf(“%d\n”,b=a); } 17若有定义: inta=10,b=9,c=8;接着顺序执行下列语句后,变量b中的值是3。 c=(a-=(b-5)); c=(a%11)+(b=3); 18若想通过以下输入语句使a=5.0,b=4,c=3, intb,c;floata; scanf("%f,%d,c=%d",&a,&b,&c); 则输入数据的形式应该是: 5.0,4,c=3 19C语言本身没有提供输入/出语句,输入/出由C语言的标准输入/出库函数提供。 20编写一个程序,从键盘输入一个三位整数,将它们逆序输出。 例如输入127,输出721。 第四章知识点 1C语言中,逻辑“真”等价于【非零的数】 2以下程序的输出结果是 main() {inti; for(i=1;i<=5;i++) {if(i%2)printf(“*”); elsecontinue; printf(“#”); } printf(“$”); }【*#*#*#$】 3若有: inta=1,b=2,c=3,d=4,m=2,n=2; 则执行(m=a>b)&&(n=c>d)后n的值是【2】 4main() {inta,b,d=241; a=d/100%9; b=(-1)&&(-1); printf(“%d,%d”,a,b); } 输出的结果是【 2,1】 5若有intx=10,y=20,z=30;以下语句执行后x,y,z的值是 if(x>y) z=x;x=y;y=z;【 x=20,y=30,z=30】 6以下程序的输出结果是 main() {inta=1,b=3,c=5,d=4,x; if(a if(c else if(a if(b elsex=3; elsex=6; elsex=7; printf(“x=%d”,x); }【2】 7以下程序的输出结果是 main() {intx=2,y=-1,z=2; if(x if(y<0)z=0; elsez+=1; printf(“%d\n”,z) }【2】 8为了避免嵌套的if—else语句的二义性,C语言规定else总是与【在其之前未配对的最近的if】组成配对关系。 9已知intx=1,y;执行语句y=++x>5&&++x<10;后变量x的值是【2】。 10以下程序段的输出结果是 inta=10,b=50,c=30; if(a>b) a=b; b=c; c=a; printf("a=%db=%dc=%d\n",a,b,c);【a=10b=30c=10】 11以下程序的输出结果是 main() {inta=0,b=1,c=0,d=20; if(a)d=d-10; elseif(! b) if(! c)d=15; elsed=25; printf("d=%d\n",d); }【d=20】 12下面程序的输出结果为 main() {inta=1,b=0; switch(a) {case1: switch(b) {case0: printf("**0**");break; case1: printf("**1**");break; } case2: printf("**2**");break; } }【**0****2**】 13从键盘上输入"446755"时,下面程序的输出是 #include main() {intc; while((c=getchar())! =''\n'') switch(c-''2'') {case0: case1: putchar(c+4); case2: putchar(c+4);break; case3: putchar(c+3); default: putchar(c+2);break; } printf("\n"); }【88898787】 14将下列数学式改写成C语言的关系表达式或逻辑表达式A)a≠b或a<=c;【a! =b||a<=c】 B)|x|>=4;【x>=4||x<=-4】. 15C语言中用【1】表示逻辑值“真”,用【0】表示逻辑值“假”。 16以下程序用于判断a,b,c能否构成三角形,若能输出YES,若不能输出NO。 当a,b,c输入三角形三条边长时,确定a,b,c能构成三角形的条件是需要同时满足三条件: a+b>c,a+c>b,b+c>a。 请填空。 main() { floata,b,c; scanf(“%f%f%f”,&a,&b,&c); if()printf(“YES\n”);/*a,b,c能构成三角形*/ elseprintf(“NO\n”);/*a,b,c不能构成三角形*/ }【a+b>c&&a+c>b&&b+c>a】 17以下程序的运行结果是 fun(intt[],intn) {inti,m; if(n==1)returnt[0]; else if(n>=2){m=fun(t,n-1);returnm;} } main() { inta[]={11,4,6,3,8,2,3,5,9,2}; printf(“%d\n”,fun(a,10)); }【11】 18C语言的switch语句中,case后只能为常量或常量表达式 19有如下程序段: intx=1,y=1; intm,n; m=n=1; switch(m) {case0: x=x*2; case1: { switch(n) {case1: x=x*2; case2: y=y*2;break; case3: x++; } } case2: x++;y++; case3: x*=2;y*=2;break; default: x++;y++; } 执行完成后,x和y的值分别为: ( x=6y=6) 20多分支选择可以用嵌套的if语句和switch语句来实现。 21若从键盘输入58,则以下程序输出的结果是585858。 main() {inta; scanf("%d",&a); if(a>50)printf("%d",a); if(a>40)printf("%d",a); if(a>30)printf("%d",a); } 22下列程序段的输出结果是passwarm。 intn=’c’; switch(n++) {default: printf(“error”);break; case‘a’: case‘A’: case‘b’: case‘B’: printf(“good”);break; case‘c’: case‘C’: printf(“pass”); case‘d’: case‘D’: printf(“warn”); } 23以下两条if语句: if(a<=b)x=1;elsey=2; if(a>b))printf("****y%d\n",y);elseprintf("####x=%\n",x); 可合并成一条if语句是: if(a<=b)printf("####"x=%d\n",x=1);elseprintf("****y=%d\n",y=2); 24编程判断输入的正整数是否既是5又是7的整倍数。 若是,输出yes,否则输出no。 25设N是一个四位数,它的9倍恰好是其反序数(例如: 123的反序数是321),求N的值。 26输入年份year和月month,求该月有多少天。 判断是否为闰年,可用如下C语言表达式: year%4==0&&year%100! =0||year%400==0。 若表达式成立(即表达式值为1),则year为闰年;否则,表达式不成立(即值为0),year为平年。 27打印出所有的“水仙花数”,所谓“水仙花数”是指一个3位数,其各位数字立方和等于该 数本身。 例如: 153是一水仙花数,因为153=1^3+5^3+3^3. 28编写一程序,对于给定的一个百分制成绩,输出相应的五分制成绩。 设: 90分以上为A,80~89分为B,70~79分为C,60~69分为D,60分以下为E。 第五章知识点 1有程序段: inta; for(scanf(“%d”,&a);! a;) printf(“continue”); 则for语句中的! a等价于【a==0】 2有程序段: intx,y,z; x=20,y=40,z=60; while(x y-=4;z/=2; printf(“%d,%d,%d”,x,y,z); 则此程序执行的输出结果为【32,28,30】 3有程序段: intj=0,k=0,a=0; while(j<2) {j++; a=a+1; k=0; while(k<=3) {k++; if(k%2! =0) continue; a=a+1; } a=a+1; } 执行完成后,a的值为【8】 4以下程序的输出结果是 main() {intnum=0; while(num<=2) {num++; printf(“%d,”,num); } }【 1,2,3,】 5有程序段: (1)intn=1; do{n=++n*5;} while(n=10); 则此循环的循环体【 执行无限次】 (2)x=-1; do {x=x*x;}while(! x); 语句执行次数是: 【循环执行一次】 (3)intk=10; while(k=0)k--; 语句执行次数【循环体语句一次也不执行】 (4)for(x=0,y=10;(y>0)&&(x<4);x++,y--);【循环执行4次】 6以下程序的输出结果是 main() {intn=0; while(n++<=2); printf(“%d”,n); }【4】 7以下程序的输出结果是 main() {inti,j,m=0; for(i=1;i<15;i+=4) for(j=3;j<=19;j+=4)m++; printf(“%d”,m); }【20】 8以下程序的输出结果是 main() {intn=10; while(n>7) {n--; printf(“%d,”,n); }}【9,8,7,】 9以下程序的输出结果是 main() {inta=1,b=10; do{b-=a;a++;}while(b--<0); printf(“a=%d,b=%d”,a,b); }【a=2,b=8】 10已知inti=1;执行语句while(i++<4);后,变量i的值为【5】 11下面程序的输出结果是 main() {inti; for(i=0;i<10;i++); printf(“%d”,i); }【10】 12下面程序的输出结果是 main() {inta=1,b=0; do {switch(a) {case1: b=1;break; case2: b=2;break; default: b=0; } b=a+b; }while(! b); printf("a=%d,b=%d",a,b); } 【a=1,b=2】 13下面程序的输出结果是 main() {intk=0; charc=''A''; do {switch(c++) {case''A'': k++;break; case''B'': k--; case''C'': k+=2;break; case''D'': k=k%2;contiue; case''E'': k=k+10;break; default: k=k/3; } k++; }while(c<''C''); printf("k=%d\n",k); } 【k=4】 14下面程序的输出结果是 main() {inti,j,k=10; for(i=0;i<2;i++) {k++; {intk=0; for(j=0;j<=3;j++) {if(j%2)continue; k++; } } k++; } printf("k=%d\n",k); }【 k=14】 15下面程序的输出结果是 #include main() {intn[3][3],i,j; for(i=0;i<3;i++) for(j=0;j<3;j++) n[i][j]=i+j; for(i=0;i<2;i++) for(j=0;j<2;j++) n[i+1][j+1]+=n[i][j]; printf("%d\n",n[i][j]); }【6】 16break语句只能用于【循环】语句和【多分支选择】语句。 17以下程序的输出结果是 main() {ints,i; for(s=0,i=1;i<3;i++,s+=i); printf("%d\n",s); }【5】 18以下程序的功能是计算: s=1+12+123+1234+12345。 请填空。 main() {intt=0,s=0,i; for(i=1;i<=5;i++) {t=i+________;s=s+t;} printf("s=%d\n",s); }【t*10】 19以下程序运行后的输出结果是 main() { charc1,c2; for(c1=''0'',c2=''9'';c1 print
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 语言 复习题 学生 本科 64 学时