大学计算机 C语言期末复习题一 附带答案.docx
- 文档编号:4929498
- 上传时间:2022-12-11
- 格式:DOCX
- 页数:15
- 大小:30.81KB
大学计算机 C语言期末复习题一 附带答案.docx
《大学计算机 C语言期末复习题一 附带答案.docx》由会员分享,可在线阅读,更多相关《大学计算机 C语言期末复习题一 附带答案.docx(15页珍藏版)》请在冰豆网上搜索。
大学计算机C语言期末复习题一附带答案
大学计算机C语言期末复习题
(一)《附带答案》
一、单项选择题
1.以下不正确的C语言标识符是( )。
A.ABC B.abcC.a_bc D.ab.c
2.以下正确的C语言标识符是( )。
A.%k B.a+bC.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.以下结果为整数的表达式(设有inti;charc;floatf;)( ).A.i+f B.i*c C.c+f D.i+c+f
7.以下不正确的语句(设有intp,q)是( )。
A.p*=3; B.p/=q; C.p+=3; D.p&&=q;
8.以下使i的运算结果为4的表达式是( )。
A.inti=0,j=0; (i=3,(j++)+i);
B.inti=1,j=0; j=i=((i=3)*2);C.inti=0,j=1; (j==1)?
(i=1):
(i=3);D.inti=1,j=1; i+=j+=2;
9.设charch;以下正确的赋值语句是( )。
A.ch='123';B.ch='\xff';C.ch='\08';D.ch="\";
10.设n=10,i=4,则赋值运算n%=i+1执行后,n的值是( )。
A.0 B.3 C.2 D.1
11.逗号表达式(a=3*5,a*4),a+15的值为( ),a的值是( )。
①A.15 B.60 C.30 D.不确定②A.60 B.30 C.15 D.90
12.如果a=1,b=2,c=3,d=4,则条件表达式a
a:
c c: d的值为( ).A.1 B.2 C.3 D.4 13.设intn=3;则++n的结果是( ),n的结果是( )。 A.2 B.3 C.4 D.5 14.设intn=2;则++n+1==4的结果是( ),n的结果是( )。 ①A.true B.false C.1 D.0②A.1 B.2 C.3 D.4 15.设inta=2,b=2;则a+++b的结果是( ),a的结果是( ),b的结果是( )A.2 B.3 C.4 D.5 16.语句(1,2,3,4)的结果是( )。 A.1 B.2 C.3 D.4 17.设inta=04,b;则执行b=a<<1;语句后,b的结果是( )。 A.4 B.04 C.8 D.10 18.sizeof(double)是一个( )表达式。 A.整型 B.双精度 C.不合法 D.函数调用 19.在C语言中,不同类型数据混合运算时,要先转换成同一类型后进行运算。 设一表达式中包含有int,long,unsigned和char类型的变量和数据,则表达式最后的运算结果是( )类型的数据。 这四种类型数据的转换规律是( )。 ①A.int B.char C.unsigned D.long ②A.int->unsigned->long->char B.char->int->long->unsigned C.char->int->unsigned->long D.char->unsigned->long->int 20.有如下程序段: inta1,a2; charc1,c2; scanf("%d%c%d%c",&a1,&c1,&a2,&c2); 若要求a1,a2,c1,c2的值分别为10,20,A,B正确的数据输入是( )。 A.10A20B 21.有如下程序,若要求a1,a2,c1,c2的值分别为10、20、A、B,正确的数据输入是( )。 main() { inta1,a2; charc1,c2; scanf("%d%d",&a1,&a2); scanf("%c%c",&c1,&c2); } A.1020AB 22.有如下程序,输入数据: 12345678 #include main() { intx; floaty; scanf("%3d%f",&x,&y); } (1)A.12345 B.123 C.45 D.345 (2)A.45.000000 B.45678.000000 c.678.000000 D.123.000 23.有如下程序,输入数据: 12345 #include main() { intx; floaty; scanf("%3d%f",&x,&y); } (1)A.12 B.123 C.12345 D.0 (2)A.12.000000 B.345.000000 C.12345.000000 D.0.0000000 24.有如下程序,对应正确的数据输入是( )。 #include main() { floata,b; scanf("%f%f",&a,&b); printf("a=%f,b=%f\n",a,b); } A.2.04 25.有如下输入语句: scanf("a=%d,b=%d,c=%d",&a,&b,&c);为使变量a的值为1,b的值为3? 琧的值为2,从键盘输入数据的正确形式应是( )。 A.132 26.以下程序的执行结果是( )。 #include main() { intsum,pad; sum=pad=5; pad=sum++; pad++; ++pad; printf("%d\n",pad); } A.7 B.6 C.5 D.4 27.以下程序的执行结果是( )。 #include main() { inti=010,j=10; printf("%d,%d,%d\n",++i,j,j--); } A.11,9,10 B.9,9,10 C.010,9,9 D.10,9,9 28.已知字母A的ASCII码是65,以下程序的执行结果是( )。 #include main() { charc1='A',c2='Y'; printf("%d,%d\n",c1,c2); } A.A,Y B.65,65 C.65,90 D.65,89 29.以下程序的执行结果是( )。 #include #include main() { inta=1,b=4,c=2; floatx=10.5,y=4.0,z; z=(a+b)/c+sqrt((double)y)*1.2/c+x; printf("%f\n",z); } A.14.000000 B.15.000000 C.13.700000 D.14.900000 30.为了避免嵌套的if-else语义的二义性,C语言规定else总是与( ) A.缩排位置相同的ifB.在其之前未配对的的ifC.在其之前未配对的最近的ifD.同一行上的if 31.选择出合法的if语句(设intx,y;)( )A.if(a==b)x++;B.if(a=b)x++;D.if(a=>b)x++; 32.选择出合法的if语句(设int x,a,b,c;)( ) A.if(x! =y)if(x>y) printf("x>y\n"); elseprintf("x B.if(x! =y) if(x>y)printf("x>y\n") else printf("x C.if(x! =y)if(x>y)printf("x>y\n"); elseprintf("x D.if(x! =y) if(x>y)printf("x>y\n"); elseprintf("x 33.C语言用()表示逻辑"真"值。 A.true B.t或y C.非零整数值 D.整数0 34.以下for循环是()。 for(x=0,y=0;(y! =123)&&(x<4);x++);A.无限循环 B.循环次数不定 C.执行4次 D.执行3次 35.下面有关for循环的正确描述是()。 A.for循环只能是用于循环次数已经确定的情况。 B.for循环是先执行循环语句,后判断表达试。 C.在for循环中,不能用break语句跳出循环体D.for循环体语句中,可以包含多条语句,但要用花括号括起来 36.对于for(表达式1;;表达式3)可理解为()。 A.for(表达式1;0;表达式3)B.for(表达式1;1;表达式3) C.for(表达式1;表达式1;表达式3)D.for(表达式1;表达式3;表达式3) 37.C语言中()。 A.不能使用do-while语句构成的循环B.do-while语句构成的循环必须用break语句才能退出 C.do-while语句构成的循环,当while语句中的表达式值为非零时结束循环 D.do-while语句构成的循环,当while语句中的表达式值为零时结束循环 38.C语言中while和do-while循环的主要区别是( ) A.do-while的循环体至少无条件执行一次B.while的循环控制条件比do-while的循环控制条件严格 C.do-while允许从外部转到循环体内D.do-while的循环体不能是复合语句 39.有以下程序: #include #defineN6 main() {charc[N]; inti=0; for(;i for(i=0;i } 输入以下三行,每行输入都是在第一列上开始: a b cdef 程序的输出结果是( )。 A.abcdef B.a C.a D.a b b b c cd cdef d e f 40.以下程序的输出结果是( )。 #include main() {inti; for(i=1;i<=5;i++) {if(i%2) printf("*"); else continue; printf("#"); } printf("$\n"); } A.*#*#*#$ B.#*#*#*$ C.*#*#$ D.#*#*$ 41.以下for语句构成的循环执行了( )次。 #include x=-1;do{x=x*x;}while(! x);A.是死循环 B.循环执行二次C.循环执行一次 D.有语法错误44.以下关于数组的描述正确的是()A.数组的大小是固定的,但可以有不同的类型的数组元素。 B.数组的大小是可变的,但所有数组元素的类型必须相同。 C.数组的大小是固定的,所有数组元素的类型必须相同。 D.数组的大小是可变的,可以有不同的类型的数组元素。 45.以下一维数组a的正确定义是( ) A.inta(10);B.intn=10,a[n];C.intn;D.#defineSIZE10scanf("%d",&n);inta[SIZE]; inta[n];46.在定义inta[10];之后,对a的引用正确的是( )A.a[10]B.a[6.3]C.a(6)D.a[10-10]47.以下对二维数组a进行正确初始化的是( ) A.inta[2][3]={{1,2},{3,4},{5,6}};B.inta[][3]={1,2,3,4,5,6};C.inta[2][]={1,2,3,4,5,6};D.inta[2][]={{1,2},{3,4}};48.以下对二维数组a进行不正确初始化的是( ) A.inta[][3]={3,2,1,1,2,3};B.inta[][3]={{3,2,1},{1,2,3}};c.inta[2][3]={{3,2,1},{1,2,3}};D.inta[][]={{3,2,1},{1,2,3}};49.以下对字符数组word进行不正确初始化的是( ) A.staticcharword[]='Turbo\0';B.staticcharword[]={'T','u','r','b','o','\0'};C.staticcharword[]={"Turbo\0"};D.staticcharword[]="Turbo\0";50.在定义inta[5][4];之后,对a的引用正确的是( ) A.a[2][4]B.a[5][0]C.a[0][0]D.a[0,0]51.在定义inta[2][3];之后,对a的引用正确的是( ) A.a(1,2)B.a{1,3]C.a[1>2][! 1]D.a[2][0] 52.以下正确的定义语句是( )A.intA['a'];B.intA[3,4];C.intA[][3];D.intA[10];53.以下给字符数组str定义和赋值正确的是( ) A.charstr[10];str="China";B.charstr[]={"China"};C.charstr[10];strcpy(str,"abcdefghijklmn");D.charstr[10]={"abcdefghijklmn");54.在执行inta[][3]={1,2,3,4,5,6};语句后,a[1][0]的值是( ) A.4B.1C.2D.555.在执行inta[][3]={{1,2},{3,4}};语句后,a[1][3]的值是()A.3B.4C.0D.256.在执行charstr[10]="China\0";strlen(str)的结果是()A.5B.6C.7D.957.设int*p,i;以下正确的语句是()A.*p=10;B.i=p;C.i=*P;D.p=2*p+1;58.设chars[10];*p=s;以下不正确的表达式是()A.p=s+5;B.s=p+s;C.s[2]=p[4];D.*p=s[0];59.设char**s;以下正确的表达式是()A.s="computer";B.*s="computer";C.**s="computer";D.*s='c';60.设有说明int(*ptr)[M];其中ptr是()A.M个指向整型变量的指针B.指向M个整型变量的函数指针C.一个指向具有M个整型元素的一维数组的指针D.具有M个指针元素的一维指针数组,每个元素都只能指向整型量61.选择出i的正确结果()inti;char*s="a\045+045\b";for(i=0;*s++;i++)A.5B.8C.11D.1262.如下程序的执行结果是()#include ='\0';i++)printf("%c",*(s+i));}A.aB.a\C.a\\D.a\\\\64.如下程序的执行结果是()#include ='\0';i++)printf("%c",*(s+i));}A.\"B.a"C."\""D.不正确65.如下程序的执行结果()#include 请选择正确的编号填空delspace(char*s){inti,t;charc[80];for(i=0,t=0; (1);i++)if(! isspace( (2)))c[t++]=s[i];c[t]='\0';strcpy(s,c);} (1)A.s[i]B.! s[i]C.s[i]='\0'D.s[i]=='\0' (2)A.s+iB.*c[i]C.*(s+i)D.*(c+i)68.以下delnum函数的功能是删除字符串s中的数字字符。 请选择正确的编号填空delnum(char*s){inti,j;for(i=0,j=0;s[i]! ='\0';i++)if( (1)){s[j]=s[i];j++;} (2);} (1)A.s[j]<'0'||s[j]>'9'B.s[i]<'0'||s[i]>'9'C.s[j]<'0'&&s[j]>'9'D.s[i]<'0'&&s[i]>'9' (2)A.s[j]='\0'B.s[i]='\0'C.s[j++]='\0'D.s[i++]='\0'69.以下comp函数的功能是按词典顺序比较两个字符串s和t的大小。 如果s大于t则返回正值,等于就返回零,小于则返回负值。 请选择正确的编号填空。 comp(char*s,char*t){for(;*s==*t;___________)if(*s=='\0')return(0);return(*s-*t);}A.s++B.t++C.s++;t++D.s++,t++70.C语言中规定函数的返回值的类型是由()。 A.return语句中的表达式类型所决定B.调用该函数时的主调用函数类型所决定C.调用该函数时系统临时决定D.在定义该函数时所指指定的函数类型所决定71.对于C语言的函数,下列叙述中正确的是()。 A.函数的定义不能嵌套,但函数调用可以嵌套B.函数的定义可
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 大学计算机 C语言期末复习题一 附带答案 语言 期末 复习题 附带 答案