北京工业大学近几年计算机专业c语言期末考试试题。
计算机导论(一)课程试卷
适用专业:计算机科学与技术考试方式:计算机考试时间:2012 12。
班级编号12570219姓名:李志伟成就。
分数登记(由阅卷老师填写)
标题是一二三四
标记
候选人须知:
提交测试结果:
编程题,将程序源代码粘贴到试卷对应题目的下端,用学号名称命名文件。
选择或填空(每小题2分***20分)
1.一个完整的计算机系统应该包括(b)。
A.主机和外部设备b .硬件系统和软件系统
C.操作系统和应用软件系统d .输入设备和输出设备
2.以下说法是正确的。
由. do-while语句形成的循环不能被其他语句形成的循环替换。
B.do-while语句形成的循环只能由break语句退出。
C.当while之后的表达式非零时,由do-while语句组成的循环结束。
D.当while之后的表达式为零时,由do-while语句组成的循环结束。
3.C语言中操作数必须是整数的运算符是。
A.%=
B./ C. =
D.*
4.用两种翻译方法把用高级语言写的程序翻译成机器语言程序。
A.汇编和解释b .汇编和汇编
C.d .解释和汇编
5.微型计算机系统的中央处理单元包括
A.内存和控制器b .主存储器和运算器
C.控制器和算术单元d .内部存储器。控制器和运算单元
6.在C语言中,下列符号不能用作用户标识符。
A._256
B.3查尔c。
abc D. ds3
7.计算机可以直接执行的编程语言是。
A.基本的
C.机器语言d .汇编语言
8.下列能正确表示a≥10或a≤0的关系式是_ _ _ _ _ _。
A.a & gt= 10或a & lt= 0b . a & gt;= 10 | a & lt;=0
C.a & gt= 10 | | a & lt;= 0d . a & gt;= 10 & amp;& ampa & lt=0
9.在C语言中,1表示逻辑值“真”,0表示逻辑值“假”。
10.微机中1字节表示的二进制位数为8位。
二。完成下列问题
1.下面的程序用于读取五个整数。当程序读取的数据n为正整数时,将显示该数字。请补充程序。(5分)
# include & ltstdio.h & gt
void main()
{ int i,n;
for(I = 1;我& lt=5;i++)
{
printf(" please enter n:");
scanf( "%d ",& ampn);
如果(n & gt0)printf("整数为:% d ",n);
}
printf("节目结束了!\ n ");
}
2.重写下一个程序,实现从控制台输入任意字符。如果是大写,会转换成小写。如果是小写,就转换成大写,其他字符照原样输出。(10分)
# include & ltstdio.h & gt
void main()
{ char c1,C2;
c 1 = ' A ';
C2 = c 1+32;
printf("%c\n ",C2);
}
答案代码:
# include & ltstdio.h & gt
void main()
{ char c1,C2;
Printf("请输入一个字符:");
scanf("%c ",& ampc 1);
if(c 1 & lt;= ' z ' & amp& ampc 1 & gt;='a ')
{ C2 = c 1-32;
Printf("大写字母:%c\n\n ",C2);}
else if(c 1 & lt;= ' Z ' & amp& ampc 1 & gt;='A ')
{ C2 = c 1+32;
Printf("小写字母:%c\n\n ",C2);
}
其他
Printf("原字符:%c\n\n ",c 1);
}
3.以下程序有什么问题?请改正。(10分)
# include & ltstdio.h & gt
void main()
{短x,y,z;
x = 200
y = 300
z = x * y;
printf("%d\n ",z);
}
答案代码:
# include & ltstdio.h & gt
void main()
{ int x,y,z;
x = 200
y = 300
z = x * y;
printf("%d\n ",z);
}
4.读取程序以补充程序的功能。(10分)
从键盘上随意输入年份,判断是否是闰年。如果是闰年,输出“是闰年”,否则输出“不是闰年”。已知以下条件之一为闰年:能被4整除,但不能被100整除。能被400整除。
# include & ltstdio.h & gt
void main()
{ int year,flag
printf(" enter year:");
scanf("%d ",& amp年份);
if((年份% 4 = 0 & amp& amp年份%100!= 0)| |年%400=0)
{ flag = 1;
}
其他
{ flag = 0;
}
if ( flag=1)
{
Printf("今年是闰年\ n ");
}
其他
{
Printf("不是闰年\ n ");
}
}
第三,编写程序,调试程序正确运行。
1.写一个程序,从键盘输入一台电脑的价格,然后输出打7折后的价格。(15分)
答案代码:
# include & ltstdio.h & gt
# include & ltwindows.h & gt
int main()
{
浮动a,b;
Printf("输入电脑价格:");
scanf("%f ",& ampa);
b = 0.7 * a;
Printf("七折后价格为%.1f\n\n ",b);
系统(“暂停”);
返回0;
}
2.从键盘输入一个三位数,并找出每个数字的总和。比如三位数输入是385,输出结果是3+8+5 = 16;(15分)
答案代码:
# include & ltstdio.h & gt
# include & ltwindows.h & gt
# include & ltstring.h & gt
int main()
{
char a[3];
intb,c,d,e;
Printf("请输入三位数:");
scanf("%s ",a);
b = a[2]-' 0 ';
c = a[1]-' 0 ';
d = a[0]-' 0 ';
e = b+ c+d;
Printf("所有数字之和为:%d\n\n ",e);
系统(“暂停”);
return0
}
3.一个日本中学生发现了一个很奇妙的“定理”,请加子教授证明,但加子教授对此无能为力,于是产生了加子猜想。猜想的内容是:任意一个自然数如果是偶数就除以2,如果是奇数就乘以3加1,得到一个新的自然数。按照上面的规则继续计算,几次后结果是1,拜托了。(15分)
答案代码:
# include & ltstdio.h & gt
void main()
{ int a;
Printf("输入自然数:");
scanf("%d ",& ampa);
if(a%2==1)
a = a * 3+1;
而(a!=1)
{
a = a/2;
}
Printf("结果为:%d\n ",a);
}
我来自实验学院。这是我们大一2012的期末。希望有帮助。里面的答案都是我自己写的,可以忽略。