您的当前位置:首页正文

C程序设计期末试卷(200101杭电A卷)

2021-09-09 来源:星星旅游


杭州电子科技大学学生考试卷(A)卷 考试课程 课 程 号 考生姓名 C语言程序设计 教 师 号 学号(8位) 考试日期 2010年1 月 日 任课教师姓名 年级 专业 成绩 座位号 说明: 请将全部答案都书写在最后页答题纸上,否则答题无效。 试题一、判断题,正确打钩,错误打叉 (共10分) 1. 不同类型的变量在内存中占用存储空间的大小是一样。 2. break语句只能用在循环体中。 3. 用C语言编写的源程序须经过编译连接后,生成扩展名为.exe的可执行文件,才能运行。 4. p是一个指针变量, *p++表示指针p的对象加1。 5. 在函数体内定义的变量称局部变量,局部变量只能被本函数引用。 6. 一维数组的数组名是一个地址常量,表示第一个元素的地址。 7. 在printf函数中,如果用格式符“%d”输出实数时,则得不到正确的输出结果。 8. 在C语言程序中变量必须定义后再使用。 9. 如果s1、s2是两个字符串,可以用库函数strcpy(s1,s2)把字符串s2复制到s1中。 10. 表达式3*5/2与表达式3/2*5等价,即两个表达式的值相等。 试题二、单选题,根据题目从A、B、C、D中选择一个正确的选项(共10分) 1.如果在程序中需调用库函数sqrt,则程序中必须包含头文件( )。 A、 string.h B、 stdlib.h C、 ctype.h D、 math.h 2.若有定义语句:int a[10];则下列对a数组元素正确引用的是( )。 A、 a[10/2] B、 a[10] C、a[4.5] D、a(1) 3.用C语言逻辑表达式表示条件“–5≤x≤3”,下面正确的逻辑表达式是( )。 A、–5≤x≤3 B、–5≤x&&x≤3 C、–5≤x||x≤3 D、–5≤x,x≤3 4. 函数定义如下: void fun(int *s,int c) { *s=5; c=5; } 如果在主函数中程序段有:int a=6,b=6; fun(&a,b); 则调用fun函数后,变量a,b的值分别是( )。 A、6,5 B、5,5 C、5,6 D、6,6 5. 若有定义语句:char c='\\n';则变量c( )。 A. 含4个字符 B. 含3个字符 C. 含2个字符 D. 含1个字符 6. 如果对变量的定义为: int c1, c2, s=5 ;则执行 “c1=s++; c2=++s;

printf(\"%d,%d,%d\” 语句后,c1,c2和s的输出值是( )。 A、 5,7,7 B、 6,7,7 C、 5,6,7 D、6,6,7 7. 若有float a=2.5,b=6.3, *pa=&a; 执行语句“ *pa*=3; pa=&b ”后; 则正确的是( )。 A、*pa的值是6.3 B、 pa的值是2.5 C、*pa的值是7.5 D、 pa的值是6.3 8. 若结构体变量x定义如下,下面能给变量x输入数据的正确语句是( ) struct cx { float rl; float ie; } x ; A、 scanf(\"%f%f\、scanf(\"%f%f\ C、 scanf(\"%f%f\ D、scanf(\"%f%f\ 9.f函数定义如下, f(3)的值是( )。 int f(int x) { int k=2; k+=x; return k; } A、3 B、5 C、7 D、10 10.假设变量x、k都已定义,下列语句片段中,无语法错误的是( )。 A、switch(x) { case x>=90: putchar('A'); case x<60: putchar('E'); } B、switch(x) { case 1+2: k='A'; defualt: k='E'; 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分,共20分) 第 1 页 共 5 页

1. #include void main() { int j, k,s1,s2; s1=s2=0; for(j=1; j<=5;j++) { s1++; for(k=1; k<=j; k++) s2++; printf(\"%d %d\} } 2. #include void main() { int i,s,j,a[3][2]={0,1,2,3,4,5}; for(i=0;i<2;i++){ for(s=0,j=0;j<3;j++) s+=a[j][i]; printf(\"%d#\ } } 3. #include int num(int y,int m,int d) { int x[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}}; int j,k; k=y%4==0&&y%100!=0||y%400==0; for(j=0;j void printc(char c,int n) { int i; for(i=0;ivoid main() { int n,j; char c; scanf(\"%d,%c\运行时输入5,q if (c>='a'&&c<='z') c=c-32; for(j=1;j<=n;j++) printc(c, j); } 5. #include void swap1(int x, int y) { int t; t=x; x=y; y=t; } void swap2(int *x,int *y) { int t; t=*x; *x=*y;*y=t; } void main() { int x,y; x=1 ; y=3; swap1(x,y); printf(\"x=%d y=%d\\n\ x=1; y=3; swap2(&x,&y); printf(\"x=%d y=%d\\n\ } 试题四、程序填空题,按程序功能在每小题提供的A、B、C、D可选答案中,挑选一个正确答案。(每小题2分,共24分)。 1. 程序功能:定义判断整数是否为水仙花数的函数。利用判断水仙花数的函数,求100~1000之间所有的水仙花数。水仙花数是指一个三位数,其各位数字的立方和等于该数本身,如:153=13+53+33 【程序】 #include void main() { int m; int flower(int x); for(m=100;m<1000;m++) if ( 1 ) printf(\"水仙花数:%d\\n\} 2 { int a,b,c,s; a=x%10; 3 c=x/100; s=a*a*a+b*b*b+c*c*c; 第 2 页 共 5 页

if (s==x) 4 ; else return 0; } (1) A、flower(int m)==1 B、int flower(int m)==1 C、flower(m)==1 D、 flower(x)==1 (2) A、void flower(int x) B、int flower(int x,int s) C、int flower(int x) D、void flower(int x,int s) (3) A、 b=x%100%10 B、b=x%10/10 C、b=x/100%10 D、b=x/10%10 (4) A、return x; B、return 0; C、return -1; D、 return 1; 2.程序功能:输入n和n个实数,找出他们的最大值和最小值,并将最大值和最小值输出到文件c:\\abc.txt中。 运行示例: 输入n:5↙ 输入实数:4 56.8 78.0 13 -12↙ 程序运行结束! 【程序】 #include #include void main() { double x,a,b; int i,n; FILE *p; if ((p=fopen( 1 ))==NULL) { printf(\"Open file is fail\\n\"); exit(0); } printf(\"输入n:\"); scanf(\"%d\ printf(\"输入实数: \"); scanf(\"%lf\ 2 for(i=0; ix) 3 } 4 ; fclose(p); } (1) A、”c:\\\\abc.txt\、”c:\\\\abc.txt\C、”c:\\\\abc.txt\、”c:\\\\abc.txt\(2) A、a=b=0; B、a=b=x; C、a=0;b=x; D、 a=x;b=0; (3) A、 x=b; B、b=x; C、a=b; D、 b=a; (4) A、fprintf(p,\"max=%.1f,min=%.1f\\n\ B、fprintf(abc.txt,\"max=%.1f,min=%.1f\\n\ C、printf(p,\"max=%.1f,min=%.1f\\n\

D、printf(abc.txt,\"max=%.1f,min=%.1f\\n\ 3. 程序功能功:输入不一个超过80个字符的字符串存于字符数组中,将数组中的字符串逆序后输出。 运行示例: 输入字符串: WindowsXP ↙ 逆序后字符串为为:PXswodniW 【程序】 #include #include void main() { char s[81],t; int i,j,n; printf(“输入字符串:”); 1 ; n=0; while( 2 ) n=n+1; for(i=0, j=n-1; i #define N 6 void main() { int a[N]={22,15,3,6,13,4}; int i,j,t,s; //第5行 for(i=0; i(2) 将第6行改为for(i=0; is1111.....2!3!4! 第 4 页 共 5 页

座位号: 2. C语言程序设计答题纸(A) 2010.1 考试课程 C语言程序设计 考试日期 2010年1月 成 绩 任课教师姓名 上课时间 姓名 学号(8位) 年级 专业 注意:1.请在上课时间栏注明星期几。2. 若答案书写不下,请写在答题纸反面并注明题号。 试题一、判断题,正确打钩,错误打叉 ) 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 试题二、单选题,根据题目从A、B、C、D中选择一个正确的选项 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 试题三、程序阅读,写出运行结果 3、 1. 2. 3. 4. 5. 试题四、程序填空题,按程序功能在每小题提供的A、B、C、D可选答案中,挑选一个正确答案。 1. 2. 3. 试题五、程序阅读,回答列在程序后面的问题。 (1) (2) (3) 试题六、编程序 1.

第 5 页 共 5 页

因篇幅问题不能全部显示,请点此查看更多更全内容