南昌大学C语言05~06第二学期试卷A及答案_第1页
南昌大学C语言05~06第二学期试卷A及答案_第2页
南昌大学C语言05~06第二学期试卷A及答案_第3页
南昌大学C语言05~06第二学期试卷A及答案_第4页
南昌大学C语言05~06第二学期试卷A及答案_第5页
已阅读5页,还剩6页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、试卷编号: ( a )卷课程编号: 课程名称: c程序设计 考试形式: 闭卷 适用班级: 全校理工科 姓名: 学号: 班级: 学院: 专业: 考试日期: 题号一二三四总分累分人 签名题分50182012100得分考生注意事项:1、本试卷共9页,请查看试卷中是否有缺页或破损。如有立即举手报告以便更换。 2、考试结束后,考生不得将试卷、答题纸和草稿纸带出考场。一、 单项选择题(每空 2 分,共 50 分) (请将各小题正确答案的字母序号填到相应小题的下划线上)得分评阅人 1. c语言的运算符按运算对象的数目可以分为 。a)单目运算一种 b)单目和双目运算符c)单目、双目和三目运算符 d)单目、双目

2、、三目运算和四目运算符2. c语言表达式2/5*10的值是 。a) 0.04 b)4 c)4.0 d)03. 已知变量f和i的类型说明如下:float f=12.34; int i;则以下符合c语言语法的表达式是 。a) i=(int)f%5b) i=int(f)%5c) i=f%5d) i=(int f)%54. 能正确表示数学式1x5的c语言表达式是 。a)1 <=x<=5 b)(x> =1)&(x<=5 ) c)(x>=1 )&&(x<=5) d)(1 < =x)|(5> =x)5. 设变量c的数据类型是char,i

3、的数据类型是int,f的数据类型是float,则c语言表达式c*i+c*f-i+100值的数据类型为 。a)int b) float c) char d)不确定南昌大学 20052006学年第二学期期末考试试卷6. 在下列选项中,合法的c语言用户标识符的是 。a) int b)sin c)if d)i+j7. c程序的执行从 开始。a)程序中的第个语句 b)程序中的第个函数c)名为main 的函数 d)包含文件的第个函数8. 凡在c语言函数中未指定存储类别的变量,其隐含的存储类别为 。a)自动(auto) b)静态(static) c)字符串 d)字符或字符型变量值9. 以下程序运行时要求输入

4、10和20分别存放在变量x和y中,能正确输入数据的是 。main()int x,y; scanf("x=%d,y=%d",&x,&y); printf("x+y=%d",x+y);(说明:用<cr>表示换行符,用表示空格符)a)1020<cr> b)x=10,y=20<cr>c)10<cr> d)x=10<cr> 20<cr> y=20<cr>10. 下面程序的运行结果是 。main() int a,b; a=32767; b=a+1; printf(&q

5、uot;a=%d,b=%dn",a,b);a)a=32767,b=-32768 b)a=32767,b=32768 c)a=32767,b=1 d)运行出错11. 在c语言中,以下错误的描述是 。a)break语句不能用于循环语句和switch语句外的任何其它语句b)在switch语句中使用break语句或continue语句的作用相同c)在循环语句中使用continue语句是为了结束本次循环,而不是终止整个循环d)在循环语句中使用break语句是为了使流程跳出循环体,提前结束循环12. 在c语言中,数组作为函数的形参,函数调用时,若用数组名作为函数的实参,则实际上传递给形参的是 。

6、a)数组首地址 b)数组的第一个元素值c)数组中全部元素的值 d)数组元素的个数13. c语言编译系统对宏命令是 。a)在程序运行时进行替换处理b)在程序连接时进行处理c)和源程序中其它c语句同时进行编译d)在对源程序中其它成份正式编译之前进行处理14. 设 x、y为整型变量且已赋值,将其中较大的值输出的、正确的 if 语句是 。a) if ( x >y ) printf ( “ %d ” , x ); b) if ( x >y ) printf ( “ %d ” , x );printf ( “ %d ” , y );c) if ( x >y ) ; printf ( “

7、%d ” , x ); else printf ( “ %d ” , y ); d) if ( x >y ) printf ( “ %d ” , x ); else printf ( “ %d ” , y ); 15. 对以下程序段描述正确的是 。x=10;while(x) x=x/4;a) 不执行循环体 b) 循环体执行一次 c) 循环体执行二次 d) 死循环16. 在c语言中,引用数组元素时,对数组下标的数据类型以下说法错误的是 。a) 数组下标可以用整型常量 b) 数组下标可以用整型变量 c) 数组下标可以用任意类型的表达式 d) 数组下标可以用整型表达式17. 以下c函数的功能是

8、 。int fun(int x,int y) int z=0; z=x>y?x:y; return z; a) 求x 和y二者中的最大值 b) 求x 和y二者中的最小值c) 返回一个不确定的值 d) 返回函数值为“0”18. 定义数组:int s10;则数组元素下标的取值 。a) 最小值为1,最大值为10 b) 最小值为0,最大值为10 c) 最小值为0,最大值为9 d) 最小值为1,最大值为919. 已知 int i,s45;不能表示数组第3行第3列元素值的是 。a) * ( * ( x) )+ 3 b) x 3 3 c) * ( * ( x + 3 ) + 3 ) d) * ( x

9、3 + 3 ) 20. 以下c函数的类型是 。fun (float f ) printf ( “ %f n ” , f ) ; a) int b) float c) void d) 无法确定 21. 设char *s1,s2255=“programing” ;以下操作正确的是 。a) *s1 = “function”; b) s2=“function”;s1=s2; c) s1 = “function”;s2=s1; d) *s2='p';s1 =s2 ; 22. 设有说明语句:struct student int num,age; ;struct student stu3=6

10、001,20,6003,21,6005,19;struct student *p=stu; 则下面的c语言表达式中,值为6003的是 。a) +(p->num) b) (p+)->numc) (*p+).num d) (*+p).num23. 已有定义 int ( * p ) ( ) ; 则指针 p 可以 。a) 代表函数的返回值 b) 指向函数的入口地址c) 代表函数的类型 d) 代表函数返回值的类型24. 若用下列语句输出26个大写英文字母:(1)for(a='a'a<='z'a+) printf("%c",a);(2)

11、for(a='z'a>='a'a-) printf("%c",a);(3)for(a='a'a<='z') printf("%c",a+);(4)for(a='a'a+<='z') printf("%c",a);以下说法正确的是 。a)全都能输出 b)只有前三个语句可以输出c)只有前两个语句可以输出 d)只有第一个语句可以输出25. 设以下程序用来求三个元素的数组中,第1个元素与第3个元素之和(程序每行前面的数字表示行号)

12、。1 main()2 int a3=3*0,i;3 for(i=1;i<3;i+) scanf("%d",ai);4 for(i=1;i<3;i+) a0=a0+ai+1; 5 printf("%d",a0); 则下述说法正确的是 。a)第2行有语法错误 b)第3行有错误,程序得不到预期结果c)编译时第4行出现语法错误 d)可以得到正确结果二、 程序阅读题 (每小题 3分,共18分) (写出以下程序运行的结果) 得分评阅人 1.#include<stdio.h>main() int a,b,c,d; unsigned u; a=1

13、2;b=-24;u=10; c=a+u;d=b+u; printf("a+u=%d,b+u=%dn",c,d); 程序运行结果为:2.#include <stdio.h>main() int a=10,b=0; if (a!=0) a=a+1;b=b+1; else a=a+2;b=b+2; printf(“%d,%dn",a,b); 程序运行结果为:3.#define v(s) s*s*s#include <stdio.h>main() int volume; volume=v(1);printf("%dt",volu

14、me); volume=v(2);printf("%dt",volume); volume=v(1+2);printf("%dn",volume); 程序运行结果为:4.#include <stdio.h>main() char s="12345" void sub_s1(char s,int n) ; void sub_s2(char s ,int n); sub_s1(s,5);sub_s2(s,6); void sub_s1(char s,int n) int i,j; for(i=0;i<n;i+) for(

15、j=0;j<i;j+) printf("%c",sj%5); printf("n"); void sub_s2(char s ,int n) int i,j; for(i=0;i<n;i+) for( j=i;j<n;j+) printf("%c",sj%5); printf("n"); 程序运行结果为:5.#include <stdio.h>main() int i,a;int fun(int m); for(i=0;i<2;i+) a=fun(4+i);printf(&quo

16、t;%dn",a); int fun(int m) static int n=0; m/=2;m=m*2; if(m) n=n*m; return (fun(m-2); else return(n+);程序运行结果为:6.#include <stdio.h>main() int i,k=0,s10=1,2,3,4,5,6,7,8,9,10; for(i=0;i<10;i+) if(i%2) k+=si; for(i=i-1;i>=0;i-) if(i%5= =0) printf(“%dt”,si); printf(“%dn”,k);程序运行结果为:三、 填空题

17、 (每空 2 分,共 20 分) (请在下划线上填入合适的内容,完成程序或程序段所要求的功能)得分评阅人 1. 以下程序运行时从键盘输入字符串abcde按回车键结束输入,要求在下划线上填入合适的内容,使输入字符串中的a和b转换为字符#输出,其它字符输出为*。# include <stdio.h>main ( ) char c ; while( ( c = getchar ( ) ) !=_ ) switch ( c ) case 'a': case 'b': putchar('#') ; _; default : putchar( &

18、#39;*' ) ; 2. 以下程序从键盘输入20个整数存入数组,统计输入非负数的个数,并计算输入的非负整数之和。请填空完成。# include <stdio.h>main ( ) int i , a20,s,n; s=n=0; for ( i = 0 ;i<20;i + ) _; for(i=0;i<20;i+) if (ai<0) _; s+=ai;n+; printf("s=%dt,n=%dn",s,n);3. 以下函数的功能是删除字符串s中所出现的与变量c相同的字符,请填空完成。void fun(char s,char c)in

19、t i,j; for(i=j=0; ;i+) if(si!=c) _; sj='0'4. 以下程序输出1+2+3+10的和,请填空完成。#include <stdio.h>main() _; i=1; do s=s+i; i+; while_; printf("%dn",s);5. 设fp为文件型指针变量,ch为字符变量,以下程序段从键盘输入字符,然后存入磁盘文件,直到输入一个#为止,请填空完成。(注:#不存入文件中)ch=getchar();while(_) _; ch=getchar(); fclose(fp);四、 程序设计题 (第1小题

20、4 分,第2小题8分,共 12 分) 得分评阅人 1. 编制一个自定义函数,函数的形参为字符数组s1和s2,函数功能是将字符串s1中的所有数字字符取出,存入另一字符数组s2中,使s2成为一个新的字符串,并在函数中将字符串s2输出。 (请按题目要求只需用自定义函数完成全部功能)2. 已知某数列前两项分别为2和3,其后继项根据数列最后两项的乘积,按下列规则生成:(1)若乘积为一位数,则该乘积即为数列的后继项;(2)若乘积为二位数,则该乘积的十位数字和个位数字依次作为数列的两个后继项。编制程序计算数列前20 项之和并输出数列中的各项(要求将数列前20项保存在数组中且不可多存)。(例如,数列前10项为

21、:2,3,6,1,8,8,6,4,2,4)05-06学年第二学期c语言程序设计期终试卷答案及评分细则一、单项选择题(每空 2 分,共 50 分1. c2. d3. a4. c5. b6. b7. c8. a9. b10. a11. b12. a13. d14. d15. c16. c17. a18. c19. a20. a21. d22. d23. b24. b25. b二、程序阅读题(每小题 3分,共18分)题号答案:备注:1a+u=22,b+u=-14数值2分(1个1分)、格式1分211,1每个1.5分31 8 7每个1分41121231234123451234513451451511格式正确且数据正确30左右给1分、数据正确60左右给2分;数据正确但格式不正确给2分;数据60正确,但格式不正确给1分508每个1.5分66 1 30每个1分三、填空题(每空2分,共20分)题号答案:备注:1'n''0'给1分break;2scanf("%d",&ai)或scanf("%d",a+i)用scanf函数,但没写&运算符给1分continue3si!='0'或si!=0或sii<

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论