C程序设计期中测验试题.doc
《C程序设计期中测验试题.doc》由会员分享,可在线阅读,更多相关《C程序设计期中测验试题.doc(7页珍藏版)》请在冰豆网上搜索。
《C语言程序设计》期中测验
班级学号14570222姓名:
李天一成绩
题号
一
二
三
四
分数
一.选择或填空题(每小题2分共20分)
D1.以下叙述正确的是。
A.do-while语句构成的循环不能用其它语句构成的循环来代替。
B.do-while语句构成的循环只能用break语句退出。
C.用do-while语句构成的循环,在while后的表达式为非零时结束循环。
D.用do-while语句构成的循环,在while后的表达式为零时结束循环。
A2.C语言中运算对象必须是整型的运算符是。
A.% B./C.= D.*
A3.将高级语言编写的程序翻译成机器语言程序,采用的两种翻译方式是
A.编译和解释B.编译和汇编
C.编译和链接D.解释和汇编
B4.以下符号在C语言中不能用作用户标识符。
A._256 B.3charC.abc D.ds3
C5.下列能正确表示a≥10或a≤0的关系表达式是。
A.a>=10ora<=0B.a>=10|a<=0
C.a>=10||a<=0D.a>=10&&a<=0
6.C语言中用1表示逻辑值“真”,用0表示逻辑值“假”。
7.微机中1个字节表示的二进制位数是8位。
D8.若inta=10;执行下列程序后,a变量的正确结果是:
switch(a)
{case9:
a+=1;
case10:
a+=1;
case11:
a+=1;
case12:
a+=1;
}
A.10B.11C.12D.13
D9.若变量已正确定义且k的值是5,计算表达式(j=k--)后,___是正确的。
A.j=5,k=5 B.j=5,k=4 C.j=4,k=5 D.j=4,k=4
C10.字符“a”的ASCII码的十进制表示为97,那么数字字符“d”的ASCII码的十进制表示为
A.98B.99C.100D.101
二.完成下列各题
1.下面这个程序用于读入5个整数,当程序读入的数据n为正整数时,则显示该数,请补充程序。
(5分)
#include
voidmain()
{ inti=1,n;
while(i<=5)
{
printf("Pleaseentern:
");
scanf(("%d",&n);
if(n>0)printf("%d\n",n);
i++;
}
printf("Programisover!
\n");
}
2.改写下段程序,实现从控制台输入任意字符如果是大写转换成小写,如果是小写转换成大写,其它字符原样输出。
(10分)
#include
voidmain()
{ charc1,c2;
c1=’A’;
c2=c1+32;
printf("%c\n",c2);
}
答案代码:
#include
voidmain()
{
charc1,c2;
printf("输入一个字母\n");
scanf("%c",&c1);
if(c1>='A'&&c1<='Z')
{
c2=c1+32;
printf("%c\n",c2);
}
if(c1>='a'&&c1<='z')
{
c2=c1-32;
printf("%c\n",c2);
}
}
3.下列程序有何错误?
请改正。
(10分)
#include
voidmain()
{ shortx,y,z;
x=200;
y=300;
z=x*y;
printf("%d\n",z);
}
答案代码:
#include
voidmain()
{
intx,y,z;
x=200;
y=300;
z=x*y;
printf("%d\n",z);
}
4.阅读程序,补充程序的功能。
(10分)
从键盘任意输入一个年号(year),判断它是否是闰年。
若是闰年,输出“它是闰年”,否则输出“它不是闰年”。
已知符合下列条件之一者是闰年:
能被4整除,但不能被100整除。
能被400整除。
#include
voidmain()
{ intyear,flag;
printf("Enteryear:
");
scanf("%d",&year);
if(year%4==0&&year%100!
=0||year%400==0)
{
flag=1;
}
else
{
flag=0;
}
if(flag==1)
{
printf("它是闰年\n");
}
else
{
printf("它不是闰年\n");
}
}
三、编写程序,并调试程序正确运行。
1.编写一个程序,从键盘输入某计算机的价格,再输出该价格打7折后的价格。
(10分)
答案代码:
#include
main()
{
inta,b;
printf("输入价格:
");
scanf("%d",&a);
b=a*0.7;
printf("%d\n",b);
}
2.从1开始做自然数的累加,当其累加和超过1000时,输出共计累加了多少数?
输出当时的累加和是多少?
(10分)
答案代码:
#include
main()
{
inti=0,g=0;
do{
i++;
g=g+i;
}while(g<=1000);
printf("%d\n",g);
printf("%d\n",i);
}
3.统计100-999之间各位数字之和是5的整数个数。
(10分)
答案代码:
#include
intmain()
{
intn,g,s,b;
for(n=100;n<=999;n++)
{
b=n/100;
s=n/10-b*10;
g=n%10;
if(b+s+g==5)
printf("%d\n",n);
}
return0;
}
4.日本一位中学生发现一个奇妙的“定理”,请角古教授证明,而角古教授无能为力,于是产生角古猜想,猜想的内容是:
任意自然数,若为偶数除以2,若为奇数则乘以3加1,得到一个新的自然数,按照上面的法则继续演算,若干次后结果必然为1,请编程验证。
(15分)
答案代码:
#include
intmain()
{
intn;
printf("请输入一个自然数:
");
scanf("%d",&n);
do{
if(n%2==1)
{
printf("%d",n);
n=n*3+1;
printf("*3+1=%d\n",n);
}
else
{
printf("%d",n);
n=n/2;
printf("/2=%d\n",n);
}
}while(n!
=1);
return0;
}
5.从键盘输入一个整数,统计该数的位数。
例如:
输入1234,输出4。
答案代码:
#include
main()
{
intn,i=0;
printf("请输入一个自然数:
");
scanf("%d",&n);
while(n>0)
{
i++;
n=n/10;
}
printf("该数有%d位\n",i);
}
第7页共7页