浙江传媒学院程序设计与数据结构期终(考试)(A)卷_第1页
浙江传媒学院程序设计与数据结构期终(考试)(A)卷_第2页
浙江传媒学院程序设计与数据结构期终(考试)(A)卷_第3页
浙江传媒学院程序设计与数据结构期终(考试)(A)卷_第4页
浙江传媒学院程序设计与数据结构期终(考试)(A)卷_第5页
已阅读5页,还剩9页未读 继续免费阅读

下载本文档

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

文档简介

1、第 4 页,共 8 页浙江传媒学院程序设计与数据结构期终(考试)(A)卷20062007学年第一学期任课教师系班姓名学号*注:答案请写在答卷纸上一)判断题(每题1分,共10分)说明:在以下提供的若干个陈述中,逐一判断其正确与否,选A表示正确,选B表示错误。1 、C语言认为,变量Number和number是相同的。2 、(a=3)>(b=5)是合法的关系表达式。3 、字符数组charc="string”;有6个数组元素。4 、调用strlen("abc0ef0g”)的返回值为8。5 、C语言中允许函数“嵌套调用”和“递归调用”,所谓“递归调用”就是指:在调用一个函数的过

2、程中又出现直接或间接地调用该函数本身。6 C语言源程序文件通过编译、链接之后,生成一个后缀为.EXE的文件。7 、f是字符常量。8 、表达式!6的值是6。9 、设变量定义为charcc="12n345",则表达式sizeof(cc)的值是7。10 、while语句先判断循环条件,所以循环体有可能一次也不执行。1、组成C语言程序的是()A、过程B、函数C、子程序D、主程序和子程序)2 、下列字符序列中,合法的标识符是(A、 S.b,sum,average,_aboveB、 class,day,louts_1,2dayC、#mc|&12x,momth,student_n

3、1DD56,r_1,name,_st_13 、下面函数的功能是()intfun(chars,chart)inti=-1;while(+i,si=ti&&si!='0');return(si='0'&&ti='0');A 、比较字符串 s 和 t 的长度C、比较字符串s和t是否相等B 、比较字符串 s 和 t 的大小 、D 将字符串 t 赋给字符串 s4、 若有以下定义和语句:inta10=1,2,3,4,5,6,7,8,9,10,*p=a;则不能表示a数组元素的表达式是()。2分,共20分)A、a*pB、a10C、

4、*aD、ap-a5、 下面vc编译环境下的程序有两个printf语句,如果第1个printf语句输出的是194,则第2个printf语句的输出结果是()voidmain()inta10=1,2,3,4,5,6,7,8,9,0,*p;p=a;printf("%xn",p);printf("%xn",p+8);A、224B、226C、1b46、设有定义语句“intw34=0,1,2,4,5,8,(*p)4=w;式是()A、*w1+1B、p+,*(p+1)C、w227、 、在循环体中执行continue语句,其作用是()A、终止程序运行B、继续执行contin

5、ue语句之后的循环体各语句C、结束本次循环,进行下次循环D跳出该循环体,提前结束循环8、 strucSTUcharname10;intnum;voidf1(structSTUc)structSTUb="LiSiGuo",2042;c=b;voidf2(structSTU*c)structSTUb="SunDan",2044;*c=b;voidmain()structSTUa="YangSan",2041,b="WangYin",2043;f1(a);f2(&b);printf("%d%dn&quo

6、t;,a.num,b.num);执行后的输出结果是()A、20412044B、20412043C、20422044D、9、 对于以下递归函数f,调用函数f(2,'1','2','3')voidf(intn,chara,charb,charc)if(n=1)printf("%c->%c#",a,b);elsef(n-1,a,c,b);printf("%c->%c#",a,b);f(n-1,c,b,a);D 、 1b6为 4 的表达D 、 p112042 2043的输出结果是( )A1->2#

7、1->3#3->2#B、3->2#1->2#1->3#C、'1'->3#3->'2#1'->2#D、1->3#1->2#3->2#10、设变量定义为:intn,*p;charch,*q,*g;,则语句()是不正确的。A、p=&n;g=q=&ch;B、p=&n;q=&ch;C、p=&n;g=&chD、p=&n;q=&ch;g=p;三)程序填空题(每题2分,共20分)说明:阅读下列程序说明和相应程序,在每小题提供的若干可选答案中,挑选-个

8、正确答案。程序1【程序说明】输入100个整数,将其中的前20个数从小到大排序,然后输出这100个数。#inelude"stdio.h"voidsort(1)inti,k,m,t;for(i=0;i<n-1;i+)k=i;for(m=i+1;m<n;m+)if(2)k=m;(3)_void mai n()int k, a100;for(k=0; k<100; k+) scan f("%d”, &ak);:for(k=0; k<100; k+) prin tf("%d ", ak);1、 A、int a, int n

9、C、int *a, int *n2、A、am-1>amC、ak<am3、A、ak = ai; ai = ak; ai = t;BDBDBC、t = ak; ak = ai; ai = t; D ai;4、A、sort(a, 20)B、int *a, int n、int a口、am-1<am、ak>am、ak = t ; ak = ai;、ai = ak; ak=sort(a , 20)第8页,共8页、sort(a)C、sort(a20)6的偶数均可表示为两程序2【程序说明】验证哥哥德巴赫猜想:任何一个大于个素数之和。例如6=3+3,8=3+5,,18=7+11。将610

10、0之间的每个偶数都表示成两个素数之和。函数prime(m)用于判断m是否为素数。素数就是只能被1和自身整除的正整数,1不是素数,2是素数。程序#include"stdio.h"#inelude"math.h"voidmain()inti,k;intprime(intm);for(i=6;i<=100;i=i+2)for(k=3;k<=50;k+)if ()printf("%d=%d+%dn”,i,k,i-k);break;intprime(intm)intk,n;if(m=1)return0;n=(int)sqrt(m);for(k

11、=2;k<=n;k+)(6);:5、A、prime(i)C、prime(k) && prime(i-k)6、A、if (m%k!=0) return 0C、if(m%k=0) return 17、A、return 0 :C、else return 0;、prime(i) && prime(k)、prime(k)> if(m%k=0) return 、0if(m%k !=0) return 1 、return 1;、else return 1;程序3【程序说明】输入10个整数,将它们存入数组a中,再输入一个数x,然后在数组中查找x,如果找到,输出相应的

12、下标(如有多个元素与x相等,只要输出下标值最小的那个元素的下标),否则)输出"NotFound"。【程序】#include<stdio.h>voidmain()intk,sub,x;inta10;for(k=0;k<10;k+)scanf("%d",&ak);printf("Inputx'n");scanf("%d",&x);sub=-l;for(k=0;(8):k+)if(ak=x)(9)if(10)printf("Indexis%d'n",s

13、ub);elseprintf("NotFoundC 、k<9D、k <8C 、sub=k;break : D 、n");8、A、k<10B、k<=109、A、sub=k;B、break:sub=k;break10、A、sub!=-1B、sub!=0Csub=-1sub=0第 13 页,共 8 页四)程序阅读题(每题2分,共20分)说明:阅读下列程序,将运行时的输出结果写在答卷纸的相应题号下程序1#include<stdio.h>voidmain()inta=-1,b=1;voidf1(intx,inty),f2(int*x,int*y);

14、voidf3(int*x,int*y),f4(intx,inty);f1(a,b);printf("(%d,%d)n",a,b);a=-1,b=1;f2(&a,&b);printf("(%d,%d)n",a,b);a=-1,b=1;f3(&a,&b);printf("(%d,%d)n",a,b);a=-1,b=1;f4(a,b);printf("(%d,%d)n",a,b);voidf1(intx,inty)int*t=malloc(sizeof(int);*t=x;x=y;y=*t

15、;voidf2(int*x,int*y)int*t;t=x;x=y;y=t;voidf3(int*x,int*y)intt;t=*x;*x=*y;*y=t;voidf4(intx,inty)intt;t=x;x=y;y=t;1、程序运行时,第A.(1,-1)B.(-1,-1)2、程序运行时,第A.(1,-1)B.(-1,-1)1 行输出_C.(-1,1)2 行输出_C.(-1,1)D.(1,1)D.(1,1)3、程序运行时,第A.(1,-1)B.(-1,-1)4、程序运行时,第A.(1,-1)B.(-1,-1)3 行输出_C.(-1,1)4 行输出_C.(-1,1)D.(1,1)D.(1,1)

16、程序2#include<stdio.h>structcardchar*face;char*suit;voidfilldeck(structcard*wdeck,char*wface,char*wsuit)inti;for(i=0;i<4;i+)wdecki.face=wfacei%2;wdecki.suit=wsuiti/2;voiddeal(structcard*wdeck)inti;for(i=0;i<4;i+)printf("(%2sof%-6s)n",wdecki.face,wdecki.suit);voidmain()structcardd

17、eck4;char*face="A","B"char*suit="Heart","Club"filldeck(deck,face,suit);deal(deck);5 、程序运行时,第1行输出A.(AofHeart)B.(BofHeart)C.(AofClub)D.(BofClub)6 、程序运行时,第1行输出A.(AofHeart)B.(BofHeart)C.(AofClub)D.(BofClub)7 、程序运行时,第1行输出A.(AofHeart)B.(BofHeart)C.(AofClub)D.(BofClu

18、b)8 、程序运行时,第1行输出A.(AofHeart)B.(BofHeart)C.(AofClub)D.(BofClub)程序3#include<stdio.h>intf(intnumber,intdigit)intcount=0;while(number!=0)if(number%10=digit)count+;number=number/10;returncount;voidmain()printf("count=%dn",f(11299,2);printf("count=%dn",f(11299,9);9 、程序运行时,第1行输出A.

19、count=0B.count=3C.count=5D.count=110 、程序运行时,第2行输出A.count=3B.count=9C.count=2D.count=5五)程序改错题(每项2.5分,共10分)减行、为相说明:程序在”*N*”的下一行中有错误,请改正,注意,不得加行、加句、减句,否则算错。1、程序功能:输入n以及小于n个字符的字符串,将字符串中所有小写字母改应的大写字母后,输出该字符串。#include<stdio.h>#include<string.h>#include<stdlib.h>voidmain()intn,i;charstr;scanf("%dn",&n);str=(char*)malloc(n);gets(str);for(i=1;i<strlen(str);i+)/*1*/*

温馨提示

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

评论

0/150

提交评论