您好,欢迎访问三七文档
第1页共8页一、单选题(30分,每题1.5分)1.下列选项中,不能用作标识符的是(D)。1.只能使用字母数字下划线、首字母必须为下划线或字母、字符个数不超过32个、区分大小写、不能使用关键字A._1234_B._1_2C.int_2_D.2_int_2.以下选项中属于C语言的数据类型是(D)。A.复数型B.逻辑型C.集合型D.双精度型3.下列格式符中,可以用于以8进制形式输出整数的是(A)。A.%oB.%dC.%8dD.%ld4.以下变量赋值方法中错误的是(B)。A.inta=3,b=3;B.inta=b=3;C.inta,b;a=b=3;D.inta=3;intb=3;5.若intk=7,x=12;则能使值为3的表达式是(D)。A.x%=(k%=5)6B.x%=(k-k%5)2C.x%=k-k%5D.(x%=k)-(k%=5)6.数组名作为实参传递给形参时,数组名被处理为(C)。A.该数组的长度B.该数组的元素个数C.该数组的首地址D.该数组中各元素的值7.设有如下定义:structstu{inta;floatb;}stutype;则下面的叙述不正确的是(C)。A.struct是结构体类型的关键字B.structstu是用户定义的结构体C.stutype是用户定义的结构体类型名D.a和b都是结构体成员名8.以下程序的输出结果是(A)#includestdio.hintmain(){inta=5,b=4,c=6,d;printf(%d,d=ab?(ac?a:c):b);return0;}A.6B.5C.4D.不确定9.C语言中不可以嵌套的是(B)。A.函数调用B.函数定义第2页共8页C.循环语句D.选择语句10.以下能正确定义二维数组的是(C)。A.inta[3][]={1};B.inta[][3]=2{2*3};C.inta[][3]={1};D.inta[2][3]={{1},{2},{3,4}};11.设有定义:inta,*pa=&a;以下scanf语句中能正确为变量a读入数据的是(A)。A.scanf(%d,pa);B.scanf(%d,a);C.scanf(%d,&pa);D.scanf(%d,*pa);12.C语言对于嵌套if语句规定else总是与(C)匹配。A.与最外层的ifB.与之前最近的ifC.与之前最近的不带else的ifD.与最近的{}之前的if13.有以下程序Cintmain(){intm[][3]={1,4,7,2,5,8,3,6,9};inti,j,k=2;for(i=0;i3;i++){printf(%d,m[k][i]);}return0;}执行后输出结果是A.456B.258C.369D.78914.若有如下定义:intarray[10];对数组元素的正确引用是(B)。A.array[10]没有a[10]这个元素B.array[5]C.array(5)D.*array[5]15.若有以下语句int*point,a=4;和point=&a;下面均代表地址的一组选项是(D)。A.a,point,*(&a)B.&(*a),&a,*pointC.*(&point),*point,&aD.&a,&(*point),point16.设char*s=″language″;则printf(″%c,%s,%c\n″,*(s+1),s,s[3]);的输出结果是(B)。A.l,language,nB.a,language,gC.a,a,gD.language,language,n17.有如下定义structperson{charname[9];intage;};structpersonclass[10]={Johu,17,Paul,19,Mary,18,Adam,16};根据上述定义,能输出字母M的语句是(D)。A.printf(%c\n,class[3].name);B.printf(%c\n,class[3].name[1]);C.printf(%c\n,class[2].name[1]);D.printf(%c\n,class[2].name[0]);18.有如下程序段的运行结果为(B)。第3页共8页charc[3][5]={AAAA,BBB,CC};puts(c[1]);A.AAAAB.BBBC.CCD.BBBCC19.当从键盘上输入字符“121”,以下程序运行后的输出结果是(A)。#includestdio.hintmain(){chars;inta=0,b=0,c=0,d=0,k;for(k=0;k3;k++){scanf(%c,&s);switch(s){default:d++;case'1':a++;case'3':c++;case'2':b++;}}printf(%d,%d,%d,%d,a,b,c,d);return0;}A.2,3,2,0B.2,1,0,0C.2120D.232020.要打开一个已存在的非空文件"file"用于修改,选择正确的语句(D)。A.fp=fopen(file,r);B.fp=fwrite(file,w);C.fp=fclose(file,r+);D.fp=fopen(file,w+);二、程序填空题(20分,每空2分)1.以下程序实现的是求二维数组中的最大值,请填空:#includestdio.hintmax(intm,intn,inta[][4]){inti,j,max1;max1=a[0][0];for(i=0;im;i++)for(j=0;jn;j++)if(max1a[i][j])max1=a[i][j];第4页共8页returnmax1;}intmain(){inta[3][4]={1,2,3,4,5,6,7,8,9,10,11,12};printf(%d\n,max(3,4,a));return0;}2.输入一字符串(换行为结束标志)统计其中大写字母、空格和数字字符出现的次数。#includestdio.hintmain(){charc;intupper=0,blank=0,digit=0;while((c=getchar())!='\n'){if(c='A'&&c='Z')upper++;//统计大写字母出现的次数elseif(c=='')blank++;//统计空格出现的次数elseif(c=’0’&&c=’9’)(字符单引号)digit++;//统计数字字母出现的次数}printf(upper=%d,blank=%d,digit=%d\n,upper,blank,digit);return0;}3.用冒泡法对数组a中的十个元素进行降序排序。intmain(){inta[10]={4,7,2,5,1,3,10,8,9,6};inti,j,m;for(i=0;i9;i++)for(j=0;j9-i;j++)if(a[j]a[j+1]){m=a[j];a[j]=a[j+1];第5页共8页a[j+1]=m;}for(i=0;i10;i++)printf(%d,a[i]);}4.输入x和y两个整数,按先小后大的顺序输出x和y。#includestdio.hintmain(){voidswap(int*p1,int*p2);intx,y;int*pointer1,*pointer2;scanf(%d,%d,&x,&y);pointer1=&x;pointer2=&y;if(xy).swap(pointer1,pointer2);printf(max=%d,min=%d,x,y);return0;}voidswap(int*p1,int*p2){inttemp;temp=*p1;*p1=*p2;*p2=temp;}三、阅读程序写结果(20分,每小题5分)1.已知程序如下,程序执行后的结果为:aabbintmain(){charc1,c2;c1='a';c2=97;putchar('a');putchar(c2);putchar('b');putchar(98);return0;}第6页共8页2.已知程序如下,程序执行后的结果为:5,4#includestdio.hintmain(){inti=2;i*=2;printf(%d,%d,++i,i++);}3.已知程序如下,程序执行后的结果为:4intfib(intn){if(n2)return(fib(n-1)+fib(n-2));//再次调用FIB函数elsereturn(2);}intmain(){printf(%d\n,fib(3));return(0);}4.已知程序如下,程序执行后的结果为:358#includestdio.hintmain(){inta[5]={1,3,5,7,9},*p;p=a;printf(%d,*(++p));p++;printf(%d,*p++);printf(%d,++*p);return0;}四、编程题(30分,8%+10%+12%)1.从键盘输入一个整数,判断它的奇偶性。若该整数为奇数,输出“odd”;若该整数为偶数,输出“even”。第7页共8页#includestdio.hintmain(){inti;scanf(%d,&i);if(i%2==0)printf(even\n);elseprintf(odd\n);return0;}2.编程求1!+2!+3!+……+10!的值。#includestdio.hintmain(){intsum,i,j;for(i=1,j=1,sum=0;i=10;i++){j=j*i;sum=sum+j;}printf(%d\n,sum);return0;}3.输入10个儿童的体重,要求计算平均体重并输出低于平均体重的个数。#includestdio.hintmain(){inta[10],i;floatave=0;for(i=0;i=9;i++)scanf(%d,&a[i]);for(i=0;i=9;i++){ave=ave+a[i];ave=ave/10;}printf(%f\n,ave);for(i=0;i=9;i++)第8页共8页if(a[i]ave)printf(%d\t,a[i]);printf(\n);return0;}
本文标题:C语言程序设计
链接地址:https://www.777doc.com/doc-4231376 .html