C语言期中笔试及答案.docx
《C语言期中笔试及答案.docx》由会员分享,可在线阅读,更多相关《C语言期中笔试及答案.docx(13页珍藏版)》请在冰豆网上搜索。
C语言期中笔试及答案
中国海洋大学命题专用纸(首页)
2006-2007学年第二学期试题名称:
C程序设计期中考试课程号:
008501101075共7页第1页
专业__________________学号__________________姓名__________________任课教师__________________分数___________
答案请答于答题卡上,答题卡上写清楚考生个人信息、任课教师姓名与选课班。
只需上交答题卡。
一、选择题(每题2分,共40分)
1.以下叙述正确的是__B___。
A)在C程序中,main函数必须位于程序的最前面
B)C语言本身没有输入输出语句
C)C程序的每行中只能写一条语句
D)在对一个C程序进行编译的过程中,可发现注释中的拼写错误
2.下列定义变量的语句中错误的是___C___。
A)doubleint_;B)int_int;C)floatUS$;D)charINT;
3.设有如下的变量定义,则以下符合C语言语法的表达式是__A____。
inti=8,k,a,b;
unsignedlongw=5;
doublex=1.42,y=5.2;
A)a+=a-=(b=4)*(a=3)B)x%(-3)C)a=a*3=2D)y=float(i)
4.数字字符'0'的ASCII的值为48,下面程序运行后输出结果是__B____。
#include
voidmain()
{chara='1',b='2';
printf("%c,",b--);
printf("%d\n",b-a);}
A)1,0B)2,0C)49,0D)0,49
5.以下程序的输出结果是___C___。
#include
voidmain()
{inta=5,b=4,c=6,d;
printf("%d\n",d=a>b?
(a>c?
a:
c):
(b));}
A)5B)8C)6D)不确定
6.已有如下定义和输入语句,若要求a1,a2,c1,c2的值分别为10,20,A和B,当从第一列开始输入数据时,正确的数据输入方式是____A__。
(表示空格,表示回车)
inta1,a2;charc1,c2;
scanf("%d%c%d%c",&a1,&c1,&a2,&c2);
A)10A20BB)1020AB
C)10A20BD)10A20B
7.下面程序的输出结果是___A___。
#include
授课教师
命题教师或命题负责人
签字
院系负责人
签字
2007年5月日
注:
请命题人标明每道考题的考分值。
中国海洋大学命题专用纸(附页)
2006-2007学年第二学期试题名称:
C程序设计期中考试课程号:
008501101075共7页第2页
voidmain()
{intx=1,y=0,a=0,b=0;
switch(x)
{case1:
switch(y)
{case0:
a++;break;
case1:
b++;break;
}
case2:
a++;b++;break;
}
printf("a=%d,b=%d\n",a,b);}
A)a=2,b=1B)a=1,b=1C)a=1,b=0D)a=2,b=2
8.假定下面所有变量均已正确定义,下列程序段运行后x的值是___C___。
ok1=1;ok2=2;ok3=3;x=15;
if(!
ok1)x--;
elseif(ok2)if(!
ok3)x=3;
elsex=4;
A)15B)14C)4D)3
9.以下程序的输出结果是____A__。
#include
voidmain()
{inti=0,s=0;
do{if(i%2){i++;continue;}
i++;
s+=i;
}while(i<7);
printf("%d\n",s);}
A)16B)12C)9D)8
10.下列描述中不正确的是_C_____。
A)字符型数组中可以存放字符串
B)可以对字符型数组进行整体输入、输出
C)可以对整型数组进行整体输入、输出
D)不能在赋值语句中通过赋值运算符"="对字符型数组进行整体赋值
11.以下程序段运行后输出结果是__D____。
intx=3;
do{printf("%d\n",x-=2);
}while(!
(--x));
A)输出的是1B)输出的是3和0C)是死循环D)输出的是1和-2
12.定义如下变量和数组:
intk;
inta[3][3]={1,2,3,4,5,6,7,8,9};
则下面语句的输出结果是__A___。
for(k=0;k<3;k++)printf("%d",a[k][2-k]);
A)357B)369C)159D)147
中国海洋大学命题专用纸(附页)
2006-2007学年第二学期试题名称:
C程序设计期中考试课程号:
008501101075共7页第3页
13.下面叙述中正确的是___D___。
A)break语句只能用于switch语句中B)在switch语句中必须使用default
C)continue语句可用于switch语句中D)在switch语句中不一定使用break语句14.下面程序执行后,输出结果是__D____。
voidmain()
{chars[]="abcde";
s+=2;
printf("%d\n",s[0]);}
A)97B)99C)cD)程序出错,无法运行
15.下面是对数组s的初始化,其中不正确的是__D___。
A)chars[5]={"abc"};B)chars[5]={'a','b','c','d','e'};
C)chars[5]="";D)chars[5]="abcdef";
16.以下程序运行后的输出结果是_____。
#include
voidmain()
{inty=18,i=0,j,a[8];
do{a[i]=y%2;i++;y=y/2;}while(y>=1);
for(j=i-1;j>=0;j--)printf("%d",a[j]);
printf("\n");}
A)10000B)00110C)10100D)10010
17.下面程序执行后的输出结果是______。
voidmain()
{inti,s=0;
for(i=1;i<10;i+=2)s+=i;
printf("%d\n",s);}
A)自然数1~9的累加和B)自然数1~10的累加和
C)自然数1~9中奇数和D)自然数1~9中偶数和
18.以下程序执行后,输出结果是______。
#include
voidmain()
{charch[7]={"65ab21"};
inti,s=1;
for(i=0;ch[i]>='0'&&ch[i]<='9';i++)s=10*s+ch[i]-'0';
printf("%d\n",s);}
A)6521B)165C)16521D)ab
19.以下程序的输出结果是______。
#include
voidmain()
{inta[3][3]={{1,2},{3,4},{5,6}},i,j,s=0;
for(i=1;i<3;i++)
for(j=0;j<=i;j++)s+=a[i][j];
printf("%d\n",s);}
A)18B)19C)20D)21
中国海洋大学命题专用纸(附页)
2006-2007学年第二学期试题名称:
C程序设计期中考试课程号:
008501101075共7页第4页
20.当c的值不为0时,在下列选项中能正确将c的值赋给变量a、b的是________。
A)c=b=a;B)(a=c)||(b=c);C)(a=c)&&(b=c);D)a=c=b;
二、填空题(每空2分,共40分)
1.以下程序运行时,如果从键盘输入:
Y?
N?
<回车>,则输出结果是____【1】_____。
#include
voidmain()
{charc;
while((c=getchar())!
='?
')putchar(--c);}
2.设a、b、c、d、m、n均为int型变量,且a=5,b=6,c=7,d=8,m=2,n=2,则逻辑表达式“(m=a>b)&&(n=c3.设变量已正确定义,在程序段B中填入正确的内容,使程序段A和程序段B等价。
程序段A程序段B
for(k=s=0;k<=10;s+=a[k++])for(k=0,s=0;;s+=a[k++])
if(a[k]<0)break;if(____【3】_____)break;
4.在scanf()中以小数形式接收double型数据输入的格式符是____【4】_____。
5.下列程序段的输出结果是____【5】_____。
voidmain()
{charb[]="Hello,you";
b[5]=0;
printf("%s\n",b); }
6.下面程序的功能是输出数组s中最大元素的下标,请完善程序。
voidmain()
{intk,p;
ints[]={1,-9,7,2,-10,3};
for(p=0,k=p;p<6;p++)if(s[p]>s[k])____【6】_____;
printf("%d\n",k);}
7.下面程序的输出结果是____【7】_____。
voidmain()
{inta[6]={0},i;
for(i=0;i<=5;i++)
switch(i)
{case4:
a[i]++;case3:
a[i]++;
case2:
a[i]++;case1:
a[i]++;
default:
a[i]++;
}
for(i=0;i<6;i++)printf("%d",a[i]);
printf("\n");}
8.下面程序运行的输出结果是____【8】_____。
voidmain()
{intm=011,n=11;printf("%d%d\n",--m,n--);}
中国海洋大学命题专用纸(附页)
2006-2007学年第二学期试题名称:
C程序设计期中考试课程号:
008501101075共7页第5页
9.以下程序运行时输出结果是____【9】_____。
#include
main()
{inta,s,n,count;
a=2;s=0;n=1;count=1;
while(count<=7){n=n*a;s=s+n;++count;}
printf("s=%d",s);
}
10.以下程序的功能是将输入的正整数按逆序输出。
例:
若输入135,输出531。
完善程序。
voidmain()
{longintn,s=0,a;
scanf("%ld",&n);
do{_____【10】_____;s=s*10+a;n/=10;
}while(_____【11】_____);
printf("%ld\n",s);}
11.以下程序的功能是输出100-300之间所有的素数,每行输出5个。
完善程序。
#include
voidmain()
{intn,i,m=0;
for(n=101;n<300;n+=2)
{for(i=2;i<=sqrt(n);i++)
if(n%i==0)break;
if(_____【12】_____)
{printf("%5d",n);
m++;
if(m%5==0)_____【13】_____;
}
}
}
12.以下程序运行时输出结果是____【14】_____。
voidmain()
{intx=-1,n=0;
do{x=x*x;n++;
}while(!
x);
printf("n=%d\n",n);}
13.下面程序的功能是用"辗转相除法"计算出两个数的最大公约数,并将结果输出到屏幕上。
请完善程序。
#include
voidmain()
{inta,b,temp;
scanf("%d%d",&a,&b);
while(b!
=0){temp=_____【15】_____;a=b;b=temp;}
printf("%d\n",_____【16】_____);}
中国海洋大学命题专用纸(附页)
2006-2007学年第二学期试题名称:
C程序设计期中考试课程号:
008501101075共7页第6页
14.以下程序的功能是统计单词个数。
单词之间以空格作为分隔符。
voidmain()
{charstr[80];inti,num=0;
gets(str);
if(str[0]!
='')_____【17】_____;
for(i=1;_____【18】_____;i++)
if(str[i]!
=''&&str[i-1]=='')
num++;
printf("num=%d\n",num);
}
15.下面程序运行时若输入字符串”ABCD”,输出结果是_____【19】_____。
voidmain()
{chara[20]="123456789",b[80];
gets(b);
strcpy(a,b);
puts(a);
}
16.下面程序输入一个不大于2×109(用long型数据)的正整数x,求这个数每位数字之和。
例如,若输入123,输出6。
请完善程序。
#include
voidmain()
{longx;intsum=0;
scanf("%ld",&x);
for(;x>0;_____【20】_____)sum+=x%10;
printf("sum=%d\n",sum);}
三、编程题(每题10分,共20分)
1.编程求
,即求1/1!
+1/2!
+1/3!
+1/4!
+┅┅+1/25!
.
2.由键盘输入一个字符串,分别统计其中数字、英文字母和空格的个数并输出。
答案请答于答题卡上,答题卡上请写清楚考生个人信息以及任课教师姓名与选课班上课时间。
只上交答题卡。
中国海洋大学命题专用纸(附页)
2006-2007学年第二学期试题名称:
C程序设计期中考试课程号:
008501101075共7页第7页
《C程序设计》期中考试答题卡2007.5
选课班上课时间______________________任课教师___________________分数________________
专业____________________________学号_________________________姓名____________________
一.单选题(每题2分,共40分)(请将所选答案涂黑如ABCD)
1.ABCD2.ABCD3.ABCD4.ABCD
5.ABCD6.ABCD7.ABCD8.ABCD
9.ABCD10.ABCD11.ABCD12.ABCD
13.ABCD14.ABCD15.ABCD16.ABCD
17.ABCD18.ABCD19.ABCD20.ABCD
二.填空题(每题2分,共40分)注意题号与空格号不一致,以空格编号为准
【1】____________________【2】_______________________【3】______________________
【4】____________________【5】______________________【6】______________________
【7】____________________【8】________________________【9】______________________
【10】__________________【11】_______________________【12】_______________________
【13】_________________【14】_____________________【15】_______________________
【16】__________________【17】_____________________【18】_______________________
【19】_________________【20】_____________________
三.编程题(共20分)(写于右侧,空间不够可写于反面)
中国海洋大学命题专用纸(附页)
2006-2007学年第二学期试题名称:
C程序设计期中考试课程号:
008501101075共7页第7页
《C程序设计》期中考试答题卡2007.5
选课班上课时间______________________任课教师___________________分数________________
专业____________________________学号_________________________姓名____________________
一.单选题(每题2分,共40分)(请将所选答案涂黑如ABCD)
1.ABCD2.ABCD3.ABCD4.ABCD
5.ABCD6.ABCD7.ABCD8.ABCD
9.ABCD10.ABCD11.ABCD12.ABCD
13.ABCD14.ABCD15.ABCD16.ABCD
17.ABCD18.ABCD19.ABCD20.ABCD
二.填空题(每题2分,共40分)注意题号与空格号不一致,以空格编号为准
【1】_______X____________【2】_________2_____________【3】___k>10||a[k]<0_______
【4】_______%lf__________【5】_________Hello________【6】_____k=p______________
【7】______123451________【8】_________811___________【9】_____s=254____________
【10】_____a=n%10_______【11】_n!
=0orn>0orn______【12】_____i>sqrt(n)_________
【13】_printf("\n");___【14】_________n=1_________【15】_____temp=a%b__________
【16】______a___________【17】________num++________【18】_____str[i]!
='\0'______
【19】______ABCD_______【20】________x/=10_______
三.编程题(共20分)(写于右侧,空间不够可写于反面)
《C程序设计》期中考试申请
《C程序设计》课程定于2007年5月18日(星期五)晚18:
40-20:
20进行期中考试,现申请安排考试教室与监考教师,并印试卷。
致
礼!
附:
参与考试的班级与选课人数
选课号实际选课人数任课教师地点
000800258曲少珍鱼山
000800164曲少珍鱼山
000800337于海波鱼山
000804967周转崂山
000804861周转崂山
000804759周转崂山
000805464于海波崂山
000805367于海波崂山
000805266王璐崂山
000805160王璐崂山
000805058王璐崂山
总计661
每个班级的印卷份数请加1-2份。
试卷第7页答题卡请预留右半页空白。
2007.5.10