C语言程序设计试卷与答案.doc

上传人:scccc 文档编号:11289932 上传时间:2021-07-21 格式:DOC 页数:14 大小:554KB
返回 下载 相关 举报
C语言程序设计试卷与答案.doc_第1页
第1页 / 共14页
C语言程序设计试卷与答案.doc_第2页
第2页 / 共14页
C语言程序设计试卷与答案.doc_第3页
第3页 / 共14页
C语言程序设计试卷与答案.doc_第4页
第4页 / 共14页
C语言程序设计试卷与答案.doc_第5页
第5页 / 共14页
亲,该文档总共14页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述

《C语言程序设计试卷与答案.doc》由会员分享,可在线阅读,更多相关《C语言程序设计试卷与答案.doc(14页珍藏版)》请在三一文库上搜索。

1、C 语言程序设计笔试试题号学名姓注意行为规范遵守考试纪律题号一二三四五笔试综合六总分(70%)(30%)分数试卷说明:1. 笔试卷面总分 100 分,取卷面成绩的 70%计入总分;2. 综合成绩为平时成绩 (10%) 和实验成绩 (20%) 之和,占总分的 30%;3. 答题时禁止拆开试卷钉,试卷背面即为草稿纸;4. 答题时间 120 分钟。一、单项选择题。将正确答案填入下面框中。(本题 16分,每小题1 分)题号12345678答案题号910111213141516答案1. 有以下程序 main()int a=1,b=0; if(!a) b+;else if(a=0) if(a) b+=2;

2、 else b+=3;printf( “ %dn ” ,b);则程序输出 ( A )。A)0B)1C)2D)32. 有以下定义:int a; long b; double x,y;则下列正确的是(A)。A) a%(int)(x-y)B) a=x!=yC) (a*y)%bD) y=x+y=x3.若有定义int (*p)3;则下列说法正确的是( C)。第1页(共14页)A) 定义了基类型为 int 的三个指针变量B) 定义了一个名为 *pt 、具有三个元素的整型数值C) 定义了一个名为 pt 的指针变量, 它可以指向每行有三个整数元素的二维数组D) 定义了基类型为 int 的具有三个元素的整型数组

3、4. 有以下程序段 main() int x=10; while(x-);printf(x=%dn,x);则最后的输出结果是:(B)。A) x=0B ) x= -1C) x=1D)while构成无限循环5. 有以下程序: int fun() static int x=1;x *= 2;return x;main( ) int i,s=1 ;for(i=1 ;i1);A) 12B) 3C) 6D) 113.若有定义语句: doublex,y,*px,*py; 执行了 px= x;py= y; 之后,正确的输入语句是 (B)。A) scanf( “ %lf%lf” ,x,y);B) scanf(

4、“ %lf,%lf ” ,px,py);C) scanf( “ %f%f” , x, y);D) scanf( “ %f%f ” ,x,y);14.以下程序运行结果是(D)。char str = “abc “;printf(“%d, %d n “,strlen(str),sizeof(str);A)6,3B) 3,3C) 10,10D) 3,1015.以下程序段运行结果是(A)。#define f(x) x*x*xmain( ) int a=1,b,c; b=f(a+1);c=f(a+1); printf( “%d,%dn “,b,c);A) 4,8B) 8,4C) 8,8D) 4,416.

5、有以下程序: main() FILE *f;f=fopen( “fa.txt “,“w “);fprintf(f,“day “);fclose(f);第3页(共14页)若文本文件fa.txt中原有内容为:hello ,则运行以上程序后,文件fa.txt 中的内容为(A)。A)dayB) hellodayC) dayloD)dayhello二、填空题。请按序号把答案填入下面框中,不允许出框线。 (本题 20 分,每空2 分)题号答案题号答案1arowcol6knext5m+10si 或 01. 以下 fun 函数功能是在 N 行 M 列的整型二维数组中, 选出一个最大值作为函数值返回。int f

6、un(int aNM) int i,j,row=0,col=0;for(i=0;iN;i+)for(j=0;jarowcol)row=i;col=j;return(【1】);2. 以下程序的功能是:将值为三位正整数的变量x 中的数值按照个位、十位,百位的顺序拆分输出。main() int x=123;printf(“%d-%d-%dn”,【 2】,x/10%10,x/100);3. 下列程序运行时,若输入23he45a,输出结果是【 3】#include main() char a=0;ch;while(ch=getchar()!=n )第4页(共14页)if(a%2!=0&(ch=a&ch=

7、 z) ch=ch- a+A ;a+;putchar(ch);printf(“n ”);4. 以下程序的功能是,通过函数fun 输入字符并统计输入字符个数。用字符$作为输入结束标志。#include long【 4】;/* 函数声明语句*/main() long n;n=fun();printf(“n=%ldn ”,n);long fun()long m;for(m=0;getchar()!=$;【 5】);return m;5. 有以下程序段,且变量已正确定义和赋值for(s=1.0,k=1;k=n;k+)s=s+1.0/(k*(k+1);printf(s=%fnn,s);请填空,是下面程序

8、段的功能与之完全相同s=1.0;k=1;while(【 6】)s=s+1.0/(k*(k+1);【 7】;printf(s=%fnn,s);6. 以下函数的功能是求两个整数的最大公约数。fun(int m,int n) int i=1,t;for(;i=m&idata);【 9】;printf(“n ”);8. 以下程序的功能是:删除字符串中所有的空格。main() char s20= ”how are you! ”; int i,j;for(i=j=0;si!=0;i+)if(si!= ) sj=si; j+; sj=【 10】;三、请把下列程序运行结果填入答案框中,不允许出框线,用“ ”表

9、示回车。(本题 24 分,每小题3 分)题号12345678答案1244364121555553041. main() int i,j,a 2=1,2,3,4; for(i=0;i2;i+)for(j=i;j0& chi2) return(fib(n-1)+fib(n-2); else return(2);void main()printf( “%dn ”,fib(4);第6页(共14页)4. main( )union example struct int x;int y;in;int a;int b;e;e.a=2;e.b=1;e.in.x=e.a+e.be.in.y=e.a*e.b;pri

10、ntf(“%dn ”,e.in.y);5. struct NODE int k;struct NODE *link; void main() struct NODE m3,*p=m,*q=m+2; int i=0;while(p!=q) p-k=+i;p+; q-k=i+;q-; q-k=i;for(i=0;i3;i+)printf(“%d ”,mi.k);printf(“n ”);6. main() int j,a=1,3,5,7,9,*p=a+3; for(j=3;j;j-)switch(j) case 1:case 2:printf(%d,*(p+); case 3:printf(%d,

11、*(-p);第7页(共14页)7. main() int x; for(x=1;x=50;x+)if(x%2=0)if(x%3=0)if(x%5=0)printf(%d,x);8. main()int a,b;for(a=1,b=1;a8)break; if(b%3=1)b+=3;continue;b-=5;printf(%dn,a);四、根据功能描述改正程序中的错误。不得增行或删行,不得更改程序结构。(本题 10 分)1. 下列给定程序中,函数fun的功能是:实现两个整数的交换。例如给a 和 b 分别输入 60 和 65,输出为: a=65b=60。 (本小题 6 分 )#include#i

12、ncludevoidfun(inta,b)intt;t=b;b=a;a=t;main()inta,b;printf(Entera,b:);scanf(%d%d,a, b);fun(&a,&b);printf(a=%db=%dn,a,b);第8页(共14页)答案:scanf(%d%d,a, b);改为: scanf(%d%d,&a,&b);-2分fun (int a,b)改为: fun(int*a,int *b) -2分t=b; b=a; a=t;改为: t=*b;*b=*a;*a=t; -2分2. 下述代码定义了一个结构体STRU ,用其声明指针变量 *s ,并完成对这个指针变量的赋值、输出的

13、任务。请指出下列程序的错误,并予以更正(本小题 4 分)struct STRUint num;char name20; float score; struct STRU *p1;main()STRU *s=(struct STRU *)malloc(sizeof(struct STRU);s.num=123;s-name=” zhang ”;s-score=61.5;printf(“ num=%d,name=%s,score=%f ”-num,s-name, s-score);答案:s.num=123;改为 :s-num 或 (*s).sum -2 分s-name=” zhang ”;改为 :

14、 strcpy(s- name, ” zhang ”)-2 分五、请用标准程序流程图描述下列问题的算法(本题 10 分)依次从键盘输入 30 个学生的计算机实用基础成绩,请分别统计不及格的人数和优秀(成绩不小于 90)的人数,并打印输出统计结果。答案:第9页(共14页)开始分定义循环变量 i 、成绩 fScore、不及格nuPass和优秀计数器 nGood并初始化分分否输出统计结果分i30是分输入成绩结束分否分i=90分是nuPass+nGood+分i+分六、编程题(本题20 分)(考查课做前两道,考试课做后两道)1. 某个公司采用公用电话传递数据,数据是四位的整数,在传递过程中是加密的,加密

15、规则如下:每位数字都加上5,然后用和除以10 的余数代替该数字,再将第一位和第四位交换,第二位和第三位交换。(本小题 10 分 )答案:main()int a,i,aa4,t; scanf(%d,&a); aa0=a%10; aa1=a%100/10; aa2=a%1000/100; aa3=a/1000;for(i=0;i=3;i+)aai+=5; aai%=10;第 10页( 共14页)for(i=0;i=0;i-)printf(%d,aai);2. 假定输入的字符串中只包含字母和* 号。请编写函数fun ,它的功能是:删除字符串中所有的* 号。在编写函数时,不得使用C 语言提供的字符串函

16、数。(本小题10 分 )例如:若字符串中的内容为*A*BC*DEF*G*删除后,字符串内容应该是:ABCDEFGvoid fun( char *a)main() int s81; gets(s); fun(s);puts(s);参考答案 :fun( char *a) int i=0; char *p=a;while(*p!=0) if(*p!=*) ai=*p; i+; p+;ai=0;第 11页( 共14页)3. 60 名学生的成绩已在主函数中放入一个带头节点的链表结构中,h 指向链表的头节点。请编写函数fun() ,它的功能是:找出学生的最低分,由函数值返回。(本小题 10分)#inclu

17、de #include #define N60struct slistdouble s;struct slist *next;typedef struct slist STREC;double fun(STREC *h)STREC * creat (double *s) STREC *h,*p,*q; int i=0; h=p=(STREC*)malloc(sizeof(STREC); p-s=0;while(is=si; i+; p-next=q; p=q;第 12页( 共14页)p-next=NULL;return h;outlist(STREC *h) STREC *p; p=h-nex

18、t; printf(head);doprintf(-%2.0f ,p-s);p=p-next;while(p!=0);printf(-NULLnn );main()double sN=56,89,76,95,91,68,75,85, max;STREC *h;h=creat(s);outlist(h);max=fun(h);printf(min=%6.1fn ,max);参考答案 :第 13页( 共14页)double fun(STREC *h) double max=h-s; while(h!=NULL)if (maxs) max=h-s;h=h-next;return max;第 14页( 共14页)

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 社会民生


经营许可证编号:宁ICP备18001539号-1