C语言期末复习资料重要.docx
- 文档编号:8043481
- 上传时间:2023-01-28
- 格式:DOCX
- 页数:45
- 大小:35.72KB
C语言期末复习资料重要.docx
《C语言期末复习资料重要.docx》由会员分享,可在线阅读,更多相关《C语言期末复习资料重要.docx(45页珍藏版)》请在冰豆网上搜索。
C语言期末复习资料重要
(注:
本文档参考答案中“↙”代表回车换行,“□”代表空格,程序代码中省略了#include
一、基础知识和顺序结构
(一)选择题
1.以下不正确的C语言标识符是
A.ABC
B.abc
C.a_bc
D.ab.c
2.以下正确的C语言标识符是
A.%x
B.a+b
C.a123
D.test!
3.一个C语言程序的执行是从。
A.main()函数开始,直到main()函数结束
B.第一个函数开始,直到最后一个函数结束
C.第一个语句开始,直到最后一个语句结束
D.main()函数开始,直到最后一函数结束
4.在C语言程序中,main函数的位置。
A.必须作为第一个函数
B.必须作为最后一个函数
C.任意
D.必须放在它所调用的函数之后
5.一个C语言程序是由。
A.一个主程序和若干个子程序组成
B.一个或多个函数组成
C.若干过程组成
D.若干子程序组成
6.下列四个叙述中,错误的是_______________。
A.一个C源程序必须有且只能有一个主函数
B.一个C源程序可以含零个或多个子函数
C.在C源程序中注释说明必须位于语句之后
D.C源程序的基本结构是函数
7.编辑程序的功能是。
A.建立并修改程序
B.将C源程序编译成目标程序
C.调试程序
D.命令计算机执行指定的操作
8.C编译程序是。
A.C语言程序的机器语言版本
B.一组机器语言指令
C.将C源程序编译成目标程序的程序
D.由制造厂家提供的一套应用软件
9.以下叙述不正确的是____________。
A.分号是C语句的必要组成部分
B.C程序的注释可以写在语句的后面
C.函数是C程序的基本单位
D.主函数的名字不一定用main表示
10.C语言中允许的基本数据类型包括_______。
A.整型、实型、逻辑型
B.整型、实型、字符型
C.整型、字符型、逻辑型
D.整型、实型、逻辑型、字符型
11.C语言中能用八进制表示的数据类型为________。
A.字符型、整型
B.整形、实型
C.字符型、实型、双精度型
D.字符型、整型、实型、双精度型
12.下列属于C语言合法的字符常数是___________。
A.’\97’
B.”A”
C.’\t’
D.”\0”
13.设所有变量均为int型,则表达式(a=2,b=5,b++,a+b)的值是
A.7
B.8
C.6
D.2
14.在C语言中,要求运算数必须是整型的运算符是:
A./
B.++
C.!
=
D.%
15.设C语言中,一个int型数据在内存中占2个字节,则unsignedint型数据的取值范围为
A.0-255
B.1-32767
C.0-65535
D.0-2147483647
16.下面不正确的字符串常量是:
A.'abc'
B."12'12"
C."0"
D.""
17.表达式18/4*sqrt(4.0)/8值的数据类型是:
A.int
B.float
C.double
D.不确定
18.若有以下定义:
chara;intb;
floatc;doubled;
则表达式a*b+d-c值的类型为:
A.float
B.int
C.char
D.Double
19.不属于字符型常量的是
A.'A'
B."B"
C.'\n'
D.'\x72'
20.在C语言中,合法的长整型常数是____________。
A.0L
B.4962710
C.0412765
D.0xa34b7fe
21.若有以下定义语句charc1=’b’,c2=’e’;printf(“%d,%c\n”,c2-c1,c2-‘a’+’A’);则输出结果是__________。
A.2,M
B.3,E
C.2,E
D.输出项与相应的格式控制不一致,输出结果不确定
22.设charch;以下正确的赋值语句是:
A.ch='123';
B.ch='\xff';
C.ch='\08';
D.ch="\";
23.若t为double类型,表达式t=1,t+5,t++的值是
A.1
B.6.0
C.2.0
D.1.0
24.设整型变量m,n,a,b,c,d均为1,执行“(m=a>b)&&(n=a>b)”后m,n的值是
A.0,0
B.0,1
C.1,0
D.1,1
25.若a=1,b=2,c=3,d=4,则条件表达式a
a:
a c: d的值为1 A.1 B.2 C.3 D.4 26.设a=2,则执行b=a==! a;语句后,b的结果是0 A.0 B.1 C.2 D.3 27.设有以下语句,则c的二进制值是Achara=3,b=6,c;c=a^b<<2; A.00011011(<<的优先级高) B.00010100 C.00011100 D.00011000 28.设x和y均为int型变量,则以下语句: x+=y;y=x-y;x-=y;的功能是D A.把x和y按从大到小排列 B.把x和y按从小到大排列 C.无确定结果 D.交换x和y中的值 (二)填空题 1.C语言中的标识符只能由三种字符组成,它们是字母 、数字、下划线。 2.一个C语言程序有且仅有一个_main_函数。 3.结构化设计中的三种基本结构是顺序,分支,循环。 4.C语言程序的执行是从__main函数__开始执行的。 5.C语言源程序文件后缀是_c或cpp_,经编译后生成文件的后缀是_obj__。 经链接后生成文件的后缀是_exe__。 6.C语言源程序的语句分隔符是__;__。 7.若a是int型变量,且a的初值为6,则执行下面表达式后a的值为-60。 a+=a-=a*a解: a=a-36=-30a=a+(-30) 8.‘\72’(字符。 。 。 )在内存中占1个字节,”\72”(字符串。 。 。 )在内存中占2个字节。 9.若有以下定义语句: inta=5;printf(“%d\n”,a++);则输出结果是___5__。 10.C语言中的基本数据类型分为整型、实型和字符型。 11.C语言的实型可分为float型和double型。 12.若有以下定义语句: intu=010,v=0x10,w=10;printf(“%d,%d,%d\n”,u,v,w);则输出结果是_8,16,10_。 13.下面程序的输出是_k=11,k=13,k=b__。 main() {intk=11; printf("k=%d,k=%o(八进制),k=%x(十六进制)\n",k,k,k);} 14.若有以下定义语句: inta=5;printf(“%d\n”,a++);则输出结果是_____5_____。 15.设x为int型变量,执行以下语句,x=10;x+=x-=x-x;x的值为__20___。 16.若有定义inta=10,b=9,c=8;接着顺序执行下列语句后,变量b的值为___3____。 c=(a-=b-5); c=(a%11)+(b=3); 17.设有以下定义,并以赋予了确定的值: charw;intx;floaty;doublez;则表达式w*x+z-y所求得值的数据类型为___double_____。 18.设x和y均为int型变量,且x=10和y=3则以下语句的输出结果是__10,2_______。 Printf(“%d,%d\n”,x++,--y); 19.下列程序的输出结果是__2,1___。 main() {inta=1,b=2; a+=b;b=a-b;a-=b; printf(“%d,%d\n”,a,b);} 20.以下程序执行结果是: 2,1 main() {inta,b,d=241; a=d/100%9; b=(-1)&&(-1); printf("%d,%d\n",a,b);} 21.以下程序执行结果是: 3.142,3.1416,3.142 main() {floatf=3.1415927; printf("%5f,%5.4f,%3.3f",f,f,f);} 22.以下程序输入123↙后的执行结果是: a=1,b=2,c=3 main() {inta,c; charb; scanf("%d%c%d",&a,&b,&c); printf("a=%d,b=%c,c=%d\n",a,b,c);} 23.以下程序输入123456后的执行结果是: a=12,b=345 main() {inta,b; scanf("%2d%3d",&a,&b); printf("a=%d,b=%d\n",a,b);} 24.以下程序输入ABC后的执行结果是: c=A main() {charc; scanf("%3c(有没有3都一样)",&c); printf("c=%c\n",c);} 二、分支结构 (一)选择题 1.选择合法的条件语句(设intx,a,b,c;)()。 A.if(a=b)++x; B.if(a= C.if(a<>b)++x; D.if(a>=b)++x; 2.执行下列程序,输入为1的输出结果是(A),输入为4的输出结果是(C),输入为3的输出结果是(D)。 main() {intk; scanf("%d",&k); switch(k) {case1: printf("%d\n",k++); case2: printf("%d\n",k++); break; case3: printf("%d\n",k++); break; case4: printf("%d\n",k++); case5: printf("%d\n",k++); break; default: printf("Full! \n");}} A.1↙2 B.1 C.4↙5 D.3 (二)填空题 1.下列程序运行后输出结果是__end___。 main() { inta,b,c; a=2;b=3;c=1; if(a>b) if(a>c) printf("%d\n",a); else printf("%d\n",b); printf("end\n"); } 2.以下程序执行结果是__d=1_____。 main() { inta,b,c,d,x; a=b=c=0; d=1; if(a)d=d-10; elseif(! b) if(! c)x=6; elsex=7; printf("d=%d\n",d);} 3.若从键盘输入m,下列程序执行结果是___M____。 main() {charc; printf("Enteracharacter: "); scanf("%c",&c); if('a'<=c&&c<='z') c=c-32; printf("%c\n",c);} 4.若上题中,从键盘输入B,程序执行结果是___B____。 5.若从键盘输入7,10,1,3,则下列程序执行结果是a=7,b=10,c=1,d=3↙ 13710。 main() {inta,b,c,d,t; scanf("%d,%d,%d,%d",&a,&b,&c,&d); printf("\n\na=%d,b=%d,c=%d,d=%d\n",a,b,c,d); if(a>b) {t=a;a=b;b=t;} if(a>c) {t=a;a=c;c=t;} if(a>d) {t=a;a=d;d=t;} if(b>c) {t=b;b=c;c=t;} if(b>d) {t=b;b=d;d=t;} if(c>d) {t=c;c=d;d=t;} printf("\n%d%d%d%d\n",a,b,c,d);} 6.以下程序的执行结果是__first↙third_。 main() {intx=1,y=0; switch(x) {case1: switch(y) {case0: printf("first\n");break; case1: printf("second\n");break;} case2: printf("third\n");}} 7.执行以下程序,输入-10的结果是__x=0_,输入5的结果是_x=5_,输入10的结果是_x=10__,输入30的结果是__x=5_。 main() {inta,b; floatx; scanf("%d",&a); if(a<0)b=-1; elseb=a/10; switch(b) {case-1: x=0;break; case0: x=a;break; case1: x=10;break; case2: case3: x=-0.5*a+20;break; default: x=-2;} if(x! =-2)printf("x=%g\n",x); elseprintf("error! \n");} 三、循环结构 (一)选择题 1.若i,j已定义为int型,则以下程序段中内循环体的执行次数是(A)。 for(i=5;i;i--)(i;相当于i>0) for(j=0;j<4;j++){……} A.20 B.24 C.25 D.30 2.若i,j已定义为int型,则以下for循环是(C)。 for(i=0,j=0;(j! =123)&&(i<4);i++); A.无限循环 B.循环次数不定 C.执行4次 D.执行3次 3.对于for(表达式1;;表达式3)可以理解为(如果表达式2省略,即不判断循环条件,循环无终止地进行下去也就是认为表达式2始终为真,为真即为非0)。 A.for(表达式1;0;表达式3) B.for(表达式1;1;表达式3) C.for(表达式1;表达式1;表达式3) D.for(表达式1;表达式3;表达式3) 3.执行下列程序段后,x值是(A),i值是(C)。 inti,x; for(i=1,x=1;i<=20;i++) {if(x>=10) break; if(x%2==1) { x+=5; continue; } x-=3; } A.10 B.7 C.6 D.14 4.下列程序的执行结果是()。 #include main() {ints=0,k; for(k=7;k>=0;k--) {switch(k) {case1: case4: case7: s++; break; case2: case3: case6: break; case0: case5: s+=2; break;}} printf("s=%d\n",s);} A.s=4 B.s=7 C.s=3 D.s=5 5.下列程序段执行结果是输出(3)。 x=3; do { printf("%2d",x--); }while(! x); A.0 B.3 C.321 D.210 (二)填空题 1.C语言while和do…while循环的主要区别是前者先判后做,后者先做后判。 2.以下程序输出结果是1↙2↙3。 main() {intnum=0; while(num<=2) {num++; printf("%d\n",num);}} 3.下列程序运行输出结果是1 22 333 4444 55555 666666 main() {inti,j,k; for(i=1;i<=6;i++) {for(j=1;j<=20-2*i;j++) printf(""); for(k=1;k<=i;k++) printf("%4d",i); printf("\n");}} 4.下列程序执行结果是237↙273。 main() {inti=2,j,k; for(j=0;j<=9;j++) for(k=0;k<=9;k++) if(i*j*k==42&&i+j+k==12) printf("%d%d%d\n",i,j,k);} 5.下列程序执行时,若从键盘输入124cmknp03↙,结果是d=5s=1a=5。 main() {charc; intd,s,a; d=s=a=0; c=getchar(); while(c! ='\n') {if(c<='9'&&c>='0') d=d+1; if(c=='') s=s+1; if(c<='z'&&c>='a'||c<='Z'&&c>='A') a=a+1; c=getchar();} printf("d=%ds=%da=%d\n",d,s,a);} 6.下列程序执行结果是72。 main() {inti,j,k,s=0; for(i=0;i<3;i++) for(j=0;j<4;j++) for(k=0;k<2;k++) s=s+i+j+k; printf("%d\n",s);} 7.下列程序执行结果是01↙24↙69↙1216↙1719↙2124↙2731↙3540↙4245↙4852↙5661↙6672(↙代表回车换行)。 main() { inti,j,k,s=0; for(i=0;i<3;i++) for(j=0;j<4;j++){ for(k=0;k<2;k++){ s=s+i+j+k; printf("%d",s);} printf("\n");} } 8.下列程序执行结果是* ** ***。 main() {inti; charj='*'; for(i=1;i<4;i++) switch(i) {case1: printf("%c\n",j); break; case2: printf("%c%c\n",j,j); break; case3: printf("%c%c%c\n",j,j,j); break;}} 9.执行下列程序,若由键盘输入4,程序执行结果是47910。 main() {ints=0,i; scanf("%d",&i); do {if(i==0) break; else {s=s+i; printf("%d\t",s);} }while(--i);} 四、数组 (一)选择题 1.以下关于数组的描述正确的是()。 A.数组的大小是固定的,但可以有不同类型的数组元素 B.数组的大小是可变的,但所有数组元素的类型必须相同 C.数组的大小是固定的,所有数组元素的类型必须相同 D.数组的大小是可变的,可以有不同类型的数组元素 2.下面一维数组a正确定义是()。 A.inta(10); B.intn=10,a[n]; C.intn; scanf(‘%d”,&n); inta[n]; D.#defineSIZE10 inta[SIZE]; 3.若定义inta[10];则对a数组元素的正确引用是()。 A.a[10] B.a[4.3] C.a(5) D.a[6-6](? ) 4.以下对一维数组进行正确初始化的语句是()。 A.inta[3]=(0,1}错; B.inta[3]={}错; C.inta[]=[0]错; D.inta[3]={3*2看成是一个数,不能是给整体赋初值} 5.下列程序: #defineN6 main() {chara[N]; inti=0; for(;i for(i=0;i 运行时输入以下三行字符,每行输入都是在该行首列开始: a↙ b↙ cdef↙ 程序输出结果是() A.abcdef B.a↙b↙c↙d C.a↙b↙cd(换行符即回车在putchar时也算一个字符) D.a↙b↙cdef 6.运行下列程序的输出结果是()。 main() {inta=5; floatx=67.846; staticchard[10]="abc"; printf("%4d,%4.1f,%c",a,x,d[2]);} A.□□□□5,□□67.8,□□c B.□□□5,67.8,c C.□□5,□□67.8,□□b D.□□□5,67.8,b 7.若定义inta[3][2];则printf(“%d”,a[1][0]);语句输出的是第(3)个元素。 A.1 B.3 C.4 D.5 8.当输出含空格的字符串时,应使用(puts())函数。 A.printf() B.puts() C.putchar() D.putc() 9.在执行charstr[10]=”ch\nina”;strlen(st测试r)(测试字符串的实际长度,故’0’不包括在内。 但是’\n’是一个字符)的结果是()。 A.5 B.6 C.7 D.9 10.10.当接收用户输入的含空格的字符串时,应使用()函数。 A.scanf() B.gets() C.getchar() D.getc() (二)填空题 1.C语言数组元素的下标必须是正整数、0或者整型表达式(! )。 2.C语言数组元素的下标下限为0。 3.C语言的数组
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 语言 期末 复习资料 重要
![提示](https://static.bdocx.com/images/bang_tan.gif)