2010C程序设计期末试卷

2018-11-26 22:04

杭州电子科技大学学生考试卷( A )卷 考试课程 课 程 号 考生姓名 C语言程序设计 上课时间 学号(8位) 考试日期 2007 年6月 日 任课教师姓名 年级 专业 成绩 说明: 请将全部答案都书写在最后页答题纸上,否则答题无效。 试题一、单选题,根据题目从A、B、C、D中,选择一个正确的选项(共16分) 1. 有定义float a=1, z ; int b=3; printf (\的输出值是( )。 A、1 B、 2 C、 2.00 D、2.50 2. 判断char型变量c为数字字符的正确表达式为( )。 A、 ?0?<=c<=?9? B、 ?0?<=c&&c<=?9? C、 c>=?0?||c<=?9? D、 c>=0&&c<=9 3. 假设变量x为int型、k为char型,下列语句片段中,无语法错误的是( )。 A、 switch(x){ case x>=90: putchar('A'); case x<60: putchar('E'); } B、 switch(x) { case 1+2: k='A'; case 2*4: k='B'; } C、 switch(x){ case 2+x: k=x-2; case 3*x: k=x+3; default: k=0; } D、 switch(x){ case 3.5: k=0.5*x; case 7.8: k=8*x; default: k=0; } 4. 若有float a=2.5,b=6.3, *pa=&a; *pa*=3;pa=&b; 则正确的是( )。 A、pa的值是2.5 ; B、*pa的值是6.3 C、*pa的值是7.5 D、 pa的值是6.3; 5. 设x和y均为int型变量,则语句“x+=y;y=x–y;x– =y;”的功能是( )。 A、交换x和y的值 B、 把x和y按从大到小排列 C、把x和y按从小到大排列 D、 无确定结果 6.若有 char c1, c2, s = 'b' ; 连续执行下面语句后,c1,c2和s的输出值应是( )。 c1 = s++ ; c2=++s ; printf(\A、b,d,d B、 b,c,d C、d,e,f D、 b,d,b 7. 若有变量定义 int x=3,*p;,则下面语句不正确的是( )。 A、 p=&(x+1); B、p=&x; C、 p=&x+1; D、p=&x, p++; 8.下面程序段的输出结果是( )。 #include void fun(int a, int b,int c, int *px, int *py) { *px=a; if (*px>b) *px=b; if (*px>c) *px=c; if (a>b) *py=a; else *py=b; if (*py='a'&ch<='z') ch=ch-32; B、if (ch>='a'&&ch<='z') ch=ch-32; C、 ch=(ch>='a'&&ch<='z')? ch-32: ' '; D、ch=(ch>'a'&&ch<'z')? ch-32: ch; 12. 下面是关于break、continue语句的叙述,其中正确的说法是( )。 A、break、continue功能相同 B、break只能出现在循环体中 C、continue只能出现在循环体中 D、continue的功能是跳出循环体 13.C语言中,每个字符串的末尾都有一个字符串的结束符,表示字符串的终止。下列哪一个字符是字符串的结束符( )。 A、'\\n' B、'\\0' C、'\\t' D、'-1' 14.如果指针p指向x,则*p++表示的是( )。 A、对指针p加1 B、对p的对象加1 C、对变量x加1 D、对指针p和变量x各加1 15.下面各叙述中不正确的是( )。 A、变量名sum和Sum代表两个不同的变量。

第 1 页 共 4页

B、若变量已正确定义,表达式 x + y = z是一个合法的赋值表达式。

C、do-while语句先执行循环体,后判断循环条件,所以循环体至少会执行一次。 D、不同类型的变量在内存中占用存储空间的大小不一样。 16. char *s[ ]={\

printf(\A、 first,second,*third B、first, econd+1,*third C、first, econd, *t D、first, econd, t 试题二、按题目的意思,写出正确的内容。(共12分)

1.C程序中的 “真”和“假”是如何表示? 2. 读程序,回答问题 #include #define MAX 7 void main( )

{ int i,a[MAX]={5,8,-7,5,3,0,7},c; for(i=0;i

{ c=a[i]; /* 第8行 */ a[i]=a[MAX-i-1];

a[MAX-i-1]=c; /* 第10行 */ }

for(i=0;i

问题1.程序运行后的输出结果为是: 。 问题2.将for循环中的i

3.定义一个可以表示日期(年、月、日)的结构体数据类型date,并用该类型定义一个变量z同时为变量初始化,初始化年、月、日的值分别2007、6、28。 4.写出调用函数g(4)的输出结果。 int g(int n)

{ if(n==2||n==1) return n;

else return g(n-2)+g(n-1); }

试题三、读程序写出程序执行结果(共24分) 1. 阅读下列程序,并写出程序执行结果。 #include int f(int m, int n) { int c= 0;

for( ; m != 0 ; m=m/10 ){

if(m == n) c++; }

return c; }

void main( ){

printf(\ printf(\}

2.阅读下列程序,并写程序执行结果。

#include void main( ) { int x,i;

for( i = 1,x=1; i <= 3; i++) { x=x+i;

switch (x) {

case 1: putchar('a'); break; case 2: putchar('b'); break; case 3: putchar('c'); break; case 4: putchar('d'); break; default: putchar('e'); break; } } }

3.阅读下列程序,并写出程序执行结果。 #include void main ( ) { int a = 1,b=1;

int f(int y,int m, int d); a=f(1976, 4, 25); printf (\}

int f(int y,int m, int d) { int k, flag,n;

int tab [2][13]= {

{0, 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31 }, {0, 31, 29, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31 }, };

flag = y%4==0 && y% 100!= 0 || y@0==0; for ( n=d,k=1; k

第 2 页 共 4页

return n; }

4.阅读下面程序,在提供的A~D四个答案中,按提问挑选正确答案。

#include void sort(int *a,int n) { int i,j,t; for(i = 1; i < n; i++) for(j=0;j

if( a[j]>a[j+1] ){

t = a[j]; a[j] = a[j+1]; a[j+1] = t; }

}

void main( )

{ int i, r,n, a[10]={4,6,-3,9,0,-4,8,5,1,7}; scanf(\

sort(a, 10); /* 第13行 */

for(i = 0; i < 10; i++) printf(\}

(1)程序运行时,输出( )。

(2)若将 第13行 语句sort(a, 10);改为 sort(a+3, 7)后; 则输出( )。 (3)若将 第13行 语句sort(a, 10);改为 sort(a+5, 0)后; 则输出( )。

(4)若将 第13行 语句sort(a, 10);改为 sort(&a[1], 8)后; 则输出( )。 供选择的A~D四个答案如下:

A、4, 6, -3, 9, 0, -4, 8, 5, 1, 7, B、4, -4,-3, 0,1, 5,6, 8, 9, 7, C、4, 6, -3, -4, 0, 1, 5, 7, 8, 9, D、-4, -3, 0, 1, 4, 5, 6, 7, 8, 9, 5.

试题五、程序填空,按程序完成的功能,在划线部分填写适当的内容。 (共18分)

1.程序功能: 在数组a中已存储10个数,输入查找数x,在数组a中查找x,如果在数组中找到,则输出它在数组中的下标(元素号),如果没有找到,则输出“Not been found.”

#include #define N 10 void main()

{ int a[N]={3,-7,8,23,45,60,78,23,-33,-76},i,x; int flag=0;

printf(\ scanf(\

for(i=0;i

flag=1;

}

if ( 2 ) printf(\

}

2.程序功能:输入班级50个学生的数学成绩,计算平均分并统计高于平均分的人数在屏幕输出,同时将高于平均成绩的分数写到d:\\temp\\aa.txt文件中。 【程序】

#include #define N 50 void main()

{ float score[N],sum,ave; FILE *fp;

int i,count; fp=fopen( 3 );

printf(\请输入学生成绩\\n\ for(i=0,sum=0; i

ave= 4 ; 5 ;

for(i=0;i=ave) { count++;

6 ;

}

printf(\平均成绩=%.2f,高于平均分人数=%d\\n\ fclose(fp); }

3.程序功能:假设a数组中数据由小到大顺序存放,以下程序把a数组中相同的数据删除得只剩一个,然后以每行3个数的形式输出a数组的数据。

【程序】

#include #define N 12 void main()

{ int a[N]={3,3,4,4,4,6,9,9,23,23,90,90}; int i,j,n; n=N; i=N-1;

while( i>=0 ) {

if (a[i]==a[i-1])

第 3 页 共 4页

试题五、编程序 1.(9分)、2.(10分)、3.(11分)

{

for(j=i;j

a[j-1]= 7 ;

n--;

}

8 ;

}

for(i=0;i

{ printf(\

if ((i+1)%3==0) 9 ;

}

}

试题六 编程序 (共30分)

1.输入x,按下式计算y值并输出。 y???x?2x2?100?x?8?x?3x3?9x?0或x?8 2.输出所有的“水仙花数”,水仙花数是指一个三位数,其各位数字立方和等于其本身。如:153=13+53+33

3.在主函数中计算1+1/2!+1/3!??1/n!的和并输出。其中n的值通过程序输入。要求将计算阶乘的运算定义成函数。 2007C程序设计期末试卷(A)解答

试题一、单选题(20分,每小题1分) CBBBA,AABBD,BCAAB,DBDBD 试题二、按题目的意思,写出正确的内容(10分,每小题2分) 1. 非0为真,0为假 2. (1)18 (2) 改变,24 (该题2个问题中的“S的”应该删除。问题表达不够清楚)。 3. (1)5 8 –7 5 3 0 7 (2) 7 0 3 5 -7 8 5或7 0 3 (3)7 0 3 5 3 0 7 4. struct date {int x,y,z} z={2007,6,28}; (成员名可以是其它) 或

struct date {int x,y,z} ; struct date z; z.x=2007;z.y=6;z.z=28; 5. 5 试题三、读程序写出程序执行结果(每小题5分)

1.2#0# 2. bde 3. #116#318#202# 4. DCAB

试题四、根据程序功能,填空完成程序所规定的功能 1.scanf(\ 2. a[i]==x 3.flag==0 4. fopen(\ 5.sum/50 或sum/N6.count=0; 7.fprintf(fp,\ \

8. a[j-1]=a[j]; 9. n-- 10. if((i+1)%3==0) printf(\

1.#include #include void main() { float x,y; scanf(\if (x>=0&&x<=8) y=x+2*sqrt(x)+10; else y=x-3*pow(x,6)-9; printf(\}

2.#include #include void main()

{ int x,a,b,c;

for(x=100;x<=999;x++) { a=pow(x/100,3);

b=pow(x/10,3);

c=pow(x,3); if (a+b+c==x) printf(\

} }

3.#include #include void main()

{ float s=0; int i,n; float f(int);

scanf(\ for(i=1;i<=n;i++)

s+=1/f(i);

printf(\}

float f(int i)

{ float t=1; t*=i;

return t; }

第 4 页 共 4页


2010C程序设计期末试卷.doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:高中数学 第一章 立体几何第4课时作业 苏教版必修2

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: