欢迎来到淘文阁 - 分享文档赚钱的网站! | 帮助中心 好文档才是您的得力助手!
淘文阁 - 分享文档赚钱的网站
全部分类
  • 研究报告>
  • 管理文献>
  • 标准材料>
  • 技术资料>
  • 教育专区>
  • 应用文书>
  • 生活休闲>
  • 考试试题>
  • pptx模板>
  • 工商注册>
  • 期刊短文>
  • 图片设计>
  • ImageVerifierCode 换一换

    C语言程序设计试卷及答案(13页).doc

    • 资源ID:37290365       资源大小:284.50KB        全文页数:13页
    • 资源格式: DOC        下载积分:20金币
    快捷下载 游客一键下载
    会员登录下载
    微信登录下载
    三方登录下载: 微信开放平台登录   QQ登录  
    二维码
    微信扫一扫登录
    下载资源需要20金币
    邮箱/手机:
    温馨提示:
    快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。
    如填写123,账号就是123,密码也是123。
    支付方式: 支付宝    微信支付   
    验证码:   换一换

     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    C语言程序设计试卷及答案(13页).doc

    -C语言程序设计试卷及答案-第 13 页 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;else b+=3;printf(“%dn”,b);则程序输出( A )。A) 0 B) 1C) 2 D) 32. 有以下定义:int a; long b; double x,y;则下列正确的是( A )。A) a%(int)(x-y) B) a=x!=yC) (a*y)%bD) y=x+y=x 3. 若有定义 int (*p)3;则下列说法正确的是( C )。A) 定义了基类型为int的三个指针变量B) 定义了一个名为 *pt、具有三个元素的整型数值C) 定义了一个名为pt的指针变量,它可以指向每行有三个整数元素的二维数组D) 定义了基类型为int的具有三个元素的整型数组4. 有以下程序段main()int x=10;while(x-);printf("x=%dn",x);则最后的输出结果是:( B )。A) x=0 B) x= -1 C) x=1D)while构成无限循环5. 有以下程序:int fun()static int x=1;x *= 2; return x;main( ) int i,s=1 for(i=1 i<=2 i+) s=fun() printf(“%dn ”,s) 执行后的输出结果为( D )。A) 0B) 1C) 8D) 46. void main( ) int k=011;printf("%dn",k+); 程序输出结果是( D )A)12 B) 11C) 10D) 97. 以下C语言标识符中,不合法的是( C )。A) _2 B) a_b C) a-bD) AaBc8. C语言允许函数类型默认定义,此时该函数值隐含的类型是( B )。A) floatB) int C) longD) double9. 以下程序段运行结果是( B )。enum weekdayaa,bb=2,cc,dd,eeweek=ee;printf(“%dn“,week);A) 4 B) 5 C) eeD) 010. 以下对C语言函数的描述中,不正确的是( B )。A) 不同函数中可以使用相同名字变量 B) 函数可以嵌套定义 C) 函数可以没有返回值 D) 程序由函数组成11. 若有定义语句:double x5=1.0,2.0,3.0,4.0,5.0,*p=x;则错误引用x数组元素的是( D )。A) *p B) *x C) *(p+1) D) x512. 以下程序段运行结果是( B )。int a=6;printf(“%dn“,a>>1);A) 12 B) 3 C) 6 D) 113. 若有定义语句:double x,y,*px,*py;执行了px=x;py=y;之后,正确的输入语句是( B )。A) scanf(“%lf%lf”,x,y); B) scanf(“%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,3 B) 3,3 C) 10,10 D) 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,8 B) 8,4 C) 8,8 D) 4,416. 有以下程序:main()FILE *f;f=fopen(“fa.txt“,“w“);fprintf(f,“day“);fclose(f);若文本文件fa.txt中原有内容为:hello,则运行以上程序后,文件fa.txt中的内容为( A )。A)day B) helloday C) daylo D)dayhello二、填空题。请按序号把答案填入下面框中, 不允许出框线。(本题20分,每空2分) 题号答 案题号答 案1arowcol6k<=n2x%10或x%100%107k+323hE45a8m%i=0&&n%i=04fun()9p=p->next5m+10si或01. 以下fun函数功能是在N行M列的整型二维数组中,选出一个最大值作为函数值返回。int fun(int aNM) int i,j,row=0,col=0;for(i=0;i<N;i+)for(j=0;j<M;j+)if(aij>arowcol)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 <stdio.h>main() char a=0;ch;while(ch=getchar()!=n)if(a%2!=0&&(ch>=a&&ch<=z) ch=ch-a+A;a+;putchar(ch);printf(“n”);4. 以下程序的功能是,通过函数fun输入字符并统计输入字符个数。用字符$作为输入结束标志。#include <stdio.h>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);请填空,是下面程序段的功能与之完全相同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&&i<=n;i+)if( 【8】 )t=i;return(t);7. 以下程序将三个struct node型变量链接成一个链表,并在while循环中输出链表节点数据域中的数据。struct nodeint data;struct node *next;main() struct node a,b,c,*p,*q;a.data=10; b.data=20; c.data=30;p=&a;a.next=&b;b.next=&c;c.next=NULL;q=p;while(p)printf(“%d,”,p->data); 【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】 ;三、请把下列程序运行结果填入答案框中,不允 许出框线,用“”表示回车。(本题24分,每小题3分) 题号12345678答案1244364121555553041. main() int i,j,a 2=1,2,3,4;for(i=0;i<2;i+)for(j=i;j<2;j+) printf(“%d”,aij);printf(“n”);2.main()char ch =”453cd34”;int i,s=0;for(i=0;chi>0&& chi<9;i+=2)s=10*s+ chi-0;printf(“%dn”,s);3. long fib(int n)if(n>2) return(fib(n-1)+fib(n-2);else return(2);void main()printf(“%dn”,fib(4);4. main( )union examplestruct 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;printf(“%dn”,e.in.y);5. struct NODEint 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;i<3;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",*(-p);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;a<=50;a+)if(b>8)break;if(b%3=1)b+=3;continue;b-=5;printf("%dn",a);四、根据功能描述改正程序中的错误。 不得增行或删行,不得更改程序结构。(本题10分)1. 下列给定程序中,函数fun的功能是:实现两个整数的交换。例如给a和b分别输入60和65,输出为:a=65  b=60。(本小题6分)#include <conio.h>#include <stdio.h>void fun (int a,b)int t;t=b;b=a;a=t;main()int a,b;  printf("Enter a,b:");scanf("%d%d",a, b);  fun(&a,&b);  printf("a=%d b=%dn",a,b);答案: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,并完成对这个指针变量的赋值、输出的任务。请指出下列程序的错误,并予以更正(本小题4分)struct STRU int 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”,s->num,s->name, s->score);答案:s.num=123; 改为:s->num或(*s).sum-2分s->name=”zhang”; 改为:strcpy(s->name,”zhang”) -2分五、请用标准程序流程图描述下列问题的算法 (本题10分)依次从键盘输入30个学生的计算机实用基础成绩,请分别统计不及格的人数和优秀(成绩不小于90)的人数,并打印输出统计结果。答案:六、编程题(本题20分)(考查课做前两道,考试课做后两道) 1. 某个公司采用公用电话传递数据,数据是四位的整数,在传递过程中是加密的,加密规则如下:每位数字都加上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; for(i=0;i<=3/2;i+) t=aai; aai=aa3-i; aa3-i=t; for(i=3;i>=0;i-) printf("%d",aai);2. 假定输入的字符串中只包含字母和*号。请编写函数fun,它的功能是:删除字符串中所有的*号。在编写函数时,不得使用C语言提供的字符串函数。(本小题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'3. 60名学生的成绩已在主函数中放入一个带头节点的链表结构中,h指向链表的头节点。请编写函数fun(),它的功能是:找出学生的最低分,由函数值返回。(本小题10分)#include <stdio.h>#include <stdlib.h>#define N 60struct slist double 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(i<N)q=(STREC*) malloc(sizeof(STREC); p->s=si; i+; p->next=q; p=q; p->next=NULL; return h;outlist(STREC *h) STREC *p; p=h->next; 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);参考答案:double fun(STREC *h) double max=h->s; while(h!=NULL) if (max<h->s) max=h->s;h=h->next; return max;

    注意事项

    本文(C语言程序设计试卷及答案(13页).doc)为本站会员(1595****071)主动上传,淘文阁 - 分享文档赚钱的网站仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知淘文阁 - 分享文档赚钱的网站(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    关于淘文阁 - 版权申诉 - 用户使用规则 - 积分规则 - 联系我们

    本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

    工信部备案号:黑ICP备15003705号 © 2020-2023 www.taowenge.com 淘文阁 

    收起
    展开