北京工业大学近几年计算机专业c语言期末考试试题。

北京工业大学实验学院2012-2013学年第一学期

计算机导论(一)课程试卷

适用专业:计算机科学与技术考试方式:计算机考试时间: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的期末。希望有帮助。里面的答案都是我自己写的,可以忽略。