当前位置:首页 > 2015C语言期中-答案(试卷+答案)
华中师范大学信息管理系2010-2011学年第一学期C语言程序设计期中考试试卷
------华中师范大学信息管理系2010- 2011学年
-- - -- - --第一学期期中考试试卷
- -- - -- - 课程名称:C语言程序设计 课程号:84910109 教师:熊回香 -- - -- -题型 填空 选择 判断 读程序 完成程序 编程 总分 -- - -- -分值 : --11 30 8 30 10 11 100 -号---学---得分 -- - -- - - -- -- -得分 -- - 评阅人 一、填空题:(共11空,每空1分,共11分)
-- - -- - --1.当a=3,b=2,c=1时,表达式f=a>b>c的值为____0______。
---: -2.x=(i=4,j=16,k=32),x的值为____32____。
--名---3.设y为int变量,请写出描述“y为奇数”的表达式姓____y%2!=0(y%2==1)____---生--。
-学---4.表达式10>5&&4||3<4-10的值为_____1_______。
-- -5.表达式3/5=___0_____,3.0/5=___0.6______,3%5=___3________。 ---9 0---6.若运行时输入:-2↙,则以下程序的输出结果为__2______。 02--- void main() : ---级--- {
年--- int a,b;
-- - -- scanf(“%d”,&a); -商---电 b=(a>=0)?a:-a; ---、--- printf(“b=%d”,b); 管---信 }
-----: -7.执行下面语句后,k的值为___36_____。
--业-k=1;n=263;
--专---do {k*=n;n/=10; - -- -} while(n);
系---理--8.若有定义:int a[3][4]={{1,2},{0},{4,6,8,10}};则初始化后,a[1][2]-管---得到的初值是__0_____,a[2][1]得到的初值是___6______。 --息---信- --得分 -: -- -评阅人 二、选择题:(共20题,每题1.5分,共30分)
别---1. 1系--- -1. 一个完整的可执行C语言程序,是____B___。
A 至少要由一个主函数和(或)一个以上的辅函数构成。
B 由一个且仅由一个主函数和零个以上(含零)的辅函数构成。 C 至少要由一个主函数和1个以上的辅函数构成。 D 至少由一个但只有一个主函数和多个辅函数构成。 2.程序段 int x,y,z;
x=3;y=5;z=4;
if(x>y) z=x;x=y;y=z;
printf(\,z); 输出结果为:____B
A 5,3,4 B 5,4,4 C 5 4 4 D 3,5,4 3.以下叙述正确的是____C____。
A 在C程序中,main函数必须位于程序的最前面。 B C程序的每行只能写一条语句。 C C语言本身没有输入输出语句。
D 在对一个C程序进行编译的过程中,可心发现注释中的拼写错误。4.以下不正确的if语句为___C____。
A if (x>y); B if (x==y) x++;y++; C if (x=y;) printf(\ D if (x 5.语句for( i=0;i<5;++i) {if (i= =3)continue; printf(\的 输出结果为___B____。 A 012 B 0124 C 01234 D 不打印 6.数组内的各元素必须____A_____。 A 同类型 B 不必同类型 C 不相等 D 按数值大小排列 7.变量定义char c1,c2;与 int c1,c2;两种定义形式下的变量是___C___。 A 无条件等价 B 完全不等价 C 在一定的范围内等价 D 不能比较 8.while (!x) 中的(!x)与下面___A___等价。 A x==0 B x==1 C x!=1 D x!=0 9.判断char型变量c是否为小写字母的最简单且正确的表达式为 ___D_____。 A 'a'<=c<='z' B (c>=a)&&(c<=z) C ('a'<=c)||('z'>=c) D c>='a'&&c<='z' 10.设以下变量均为int类型,则值不等于7的表达式是____C____。 A (x=y=6,x+y,x+1) B (x=y=6,x+y,y+1) C (x=6,x+1,y=6,x+y) D (y=6,y+1,x=y,x+1) 11.已有如下定义和输入语句,若要求a1,a2,c1,c2的值分别为10,20,A 和B,当从第一列开始输入数据时,正确的数据输入方式是___A____。第 1 页 共5页 华中师范大学信息管理系2010-2011学年第一学期C语言程序设计期中考试试卷 int a1,a2; char c1,c2; scanf(“%d%c%d%c”,&a1,&c1,&a2,&c2); A 10A└┘20B↙ B 10└┘A└┘20└┘B↙ C 10A20B↙ D 10A20└┘B↙ A↙ 20↙ B↙ 12.根据定义和数据的输入方式,输入语句的正确形式为____B____。 已有定义:float f1,f2; 数据的输入方式:4.52↙ 3.5↙ A scanf(“%f,%f”,&f1,&f2); B scanf(“%f%f”,&f1,&f2); C scanf(“%3.2f %2.1f”,&f1,&f2); D scanf(“%3.2f,%2.1f”,&f1,&f2); 13.设x、y和z均为int型变量,则执行语句:x=(y=(z=10)+5)-5;后, x、y和z的值是___A______。 A x=10 B x=10 C x=10 D x=10 y=15 y=10 y=10 y=5 z=10 z=10 z=15 z=10 14.设有以下程序段: int x=0,s=0; while(!x!=0) s+=++x; printf(“%d”,s); 则____B___。 A 运行程序段后输出0 B 运行程序段后输出1 C 程序段中的控制表达式是非法的 D 程序段执行无数次 15.C语言中while和do-while循环的主要区别是___A____。 A do-while的循环体至少无条件执行一次 B while的循环控制比do-while的循环控制条件严格 C do-while循环允许从外部转到循环体内 D do-while的循环体不能是复合语句 16.对for(表达式1;;表达式3)可理解为__C____。 A for(表达式1;0;表达式3) B for(表达式1;表达式1;表达式3) C for(表达式1;1;表达式3) D for(表达式1;表达式3;表达式3) 17.若有说明:int a[3][4]={0};则下面正确的描述是__D____. A 只有元素a[0][0]可得到初值0 B 此说明语句不正确 C 数组a的每个元素都可得到初值,但其值不一定是0 D 数组a的每个元素都可得到初值0 18.下面是对s的初始化,其中不正确的是__D_____。 A char s[5]={“abc”}; B char s[5]={?a?,?b?,?c?}; C char s[5]=””; D char s[5]=”abcdef”; 19.对两个数组a和b进行如下初始化 char a[]=”ABCDEF” char b[]={?A?,?B?,?C?,?D?,?E?,?F?}; 则以下叙述正确的是___D____。 A a与b数组完全相同 B a与b长度相同 C a与b数组完全相不同 D a数组比b数组长度长 20.有两个字符数组a、b,则以下正确的输入语句是__B____。 A gets(a,b); B scanf(“%s%s”,a,b); C scanf(“%s%s”,&a,&b); D gets(“a”) ,gets(“b”); 得分 评阅人 三、判断并改正:(共4题,每题2分,共8分) 1.char c[ ]=\等价于 char c[ ]={'I', '','a','m' , ' ','h' ,'a' ,'p','p','y'}; 2. ? int a[10]; scanf (\? 3.C语言中,函数之间可以互相定义和调用。 4. int c[20],i; for (i=0;i<=20;i++) { if (c[i]>='0')&&(c[i]<='9') printf(\i=i+1;} 得分 评阅人 四、读程序:(共5题,每题6分,共30分) 1.# include “stdio.h” void main ( ) { 第 2 页 共5页 华中师范大学信息管理系2010-2011学年第一学期C语言程序设计期中考试试卷 static char str[ ]=\char cc; int i; printf (\scanf (\for (i=0;i<18; i++) if (str[i]= =cc) { printf( \); break; } if (i==18) printf ('The character not fount\\n\ } 输入:u 输入: t 输出:The character u is 8-th 输出:The character not fount 2. # include “stdio.h” void main() {int s[4][4],i,j,k; for (i=0;i<4;i++) for(j=0;j<4;j++) s[i][j]=i-j; for(i=0;i<3;i++) for(j=i+1;j<4;j++) { k=s[i][j]; s[i][j]=s[j][i]; s[j][i]=k; } for(i=0;i<4;i++) { printf(\for(j=0;j<4;j++) printf(\} } 输出 : 0 1 2 3 -1 0 1 2 -2 –1 0 1 -3 –2 –1 0 3.# include “stdio.h” void main( ) { int i,j; i=1; j=0; while (i<=4) { i=i+1; do j=j+1; while (j<5); } printf(“%d”,j); } 输出:8 4.# include \void main() { int a=2,b=7,c=5; switch(a>0) { case 1:switch(b<0) { case 1:printf(\ case 2:printf(\ } case 0:switch(c==5) {case 0:printf(\ 第 3 页 共5页 华中师范大学信息管理系2010-2011学年第一学期C语言程序设计期中考试试卷 case 1:printf(\ default:printf(\ } default:printf(\ } printf(\ } 输出:#& 5. # include “stdio.h” void main() {int a[8]={6,12,18,42,44,52,67,94}; int low=0,mid,high=7,found,x; found=0; scanf(“%d”,&x); while((low<=high)&&(found==0)) {mid=(low+high)/2; if(x>a[mid]) low=mid+1; else if(x if(found==1) printf(“Search Successful!The index is:%d\\n”,mid); else printf(“Can?t search! \\n”); } 输入:44 输出:Search Successful!The index is:4 得分 评阅人 五、完成程序:(共5空,每空2分,共10分) 以下程序的功能是输入5个数,找出最大数和最小数所在的位置,并把两者对调,然后输出调整后的5个数。 # include “stdio.h” void main( ) {int a[5],i,k,t,max,min; printf(“Enter 5 integers:\\n”); for(i=0;i<5;i++) scanf(“%d”,&a[i]); min=a[0]; max=a[0]; for(i=0;i<5;i++) if(a[i] else if (a[i]>max) {______ max=a[i]____________; _______ t=i;___________;} ________ a[k]=max; a[t]=min;____________; printf(“\\nThe position of min is:=\\n”,k+1); printf(“\\nThe position of max is:=\\n”,t+1); for(i=0;i<5;i++) printf(“=”,a[i]); } 六、编程:(共1题,11分) 得分 评阅人 输入一串字符,找出其中的元音字母,并把元音字母存放到另一个字符数组中,同时统计并输出其中英文元音字母(大小写不加区分,A,a,E,e,I,i,O,o,U,u)各自出现的次数。输出形式为: (A,a)=? (E,e)=? (I,i)=? (O,o)=? (U,u)=? # include \void main() { 第 4 页 共5页 华中师范大学信息管理系2010-2011学年第一学期C语言程序设计期中考试试卷 char str1[40],str2[40]; int a=0,b=0,c=0,d=0,e=0,i=0,j=0; gets(str1); while(str1[i]) { if(str1[i]=='A'||str1[i]=='a') { str2[j++]=str1[i]; a++;} else if(str1[i]=='E'||str1[i]=='e') { str2[j++]=str1[i]; b++;} else if(str1[i]=='I'||str1[i]=='i') { str2[j++]=str1[i]; c++;} else if(str1[i]=='O'||str1[i]=='o') { str2[j++]=str1[i]; d++;} else if(str1[i]=='U'||str1[i]=='u') { str2[j++]=str1[i]; d++;} i++; } str2[j]='\\0'; puts(str2); printf(\ printf(\ printf(\ printf(\ printf(\} 第 5 页 共5页
共分享92篇相关文档