您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 项目/工程管理 > C语言程序设计10年A卷试题及答案
第1页共6页杭州电子科技大学学生考试卷(A)卷考试课程程序设计基础考试日期2010年1月日成绩课程号教师号任课教师姓名考生姓名学号(8位)年级专业注意:(1)所有答案均写在答题纸上,写在试卷上无效;(2)考试结束后请将试卷和答题纸一起交上来。(3)试题中若出现C源代码,考虑源代码的大小写,不考虑标点符号的中英文状态;(4)本试题中C代码的开发环境为MicrosoftVisualC++6.0,运行环境为Windows2000/XP系统;(5)当题目中只有程序片段时,假设完整程序已经具有其它必要代码且能够正确运行,如包含相应的库文件、main()函数的定义等。试题一、单项选择题(每小题2分,共30分)1.下列哪个标识符是C语言中的合法标识符()A、1studentB、intC、FloatD、void2.与语句if(!x)等价于()A、x==0B、x==1C、x!=0D、x!=13.设有整型变量x,下列说法中,错误的是()A、”5.0”不是表达式B、”x”是表达式C、”!x”是表达式D、”sqrt(x)”是表达式4.已知i=3,则printf(“%d”,-i++)的输出结果为()A、-4B、-3C、-2D、以上均不对5.判断下面while循环体的执行次数()i=0;k=10;while(i==8)i=k--;A、1次B、2次C、8次D、无数次6.下列语句中与语句while(1){if(i100)break;s+=i;i++;}功能相同的是()。A、for(;i100;i++)s=s+i;B、for(;i100;i++;s=s+i);C、for(;i=100;i++)s+=i;D、for(;i=100;i++;s=s+i);7.定义chars[]={Girl},t;执行下面语句段后输出结果是()。s[0]=s[2];s[2]=s[0];s[1]=s[4];s[4]=s[1];printf(%c,%s\n,s[0],s);A、r,GirlB、r,rC、r,lirGD、r,Gril8.有数组定义语句”chara[20]”,则正确的输入语句为()A、scanf(“%s”,&a)B、scanf(“%s”,a[])C、gets(a[20])D、gets(a)9.如有数组定义语句”inta[3][4]”,则对a中数组元素的正确引用是()A、a[3][1]B、a[2,1]C、a[3][4]D、a[3-1][4-4]10.C语言中的基本数据类型作为实参时,它和对应的形参之间的数据传递方式是()A、传地址B、传数值,形参值改变后,影响实参值C、传数值,形参值改变后,不影响实参值D、既可以传地址,也可以传值11.根据下面函数f,选出f(f(3))的值()intf(intx){staticintk=0;x+=k--;returnx;}A、5B、3C、2D、412.指针变量p1,p2类型相同,要使p1,p2指向同一变量,哪个语句是正确的()A、p2=*&p1;B、p2=**p1;C、p2=&p1;D、p2=*p1;13.inta[]={1,2,3,4,5,6,7,8,9,10},*p=a.i;则下列能够正确表示数组元素地址的是()A、&(a+1)B、a++C、&pD、&p[i]14.若有以下结构体数组的定义语句:structteacher{intnum;charname[10];}thr[2]={1,”zhangsan”,2,”lisi”}则以下能输出字符串”lisi”的语句是()A、printf(“%s”,thr[0].name);B、printf(“%s”,thr[1].name);C、printf(“%s”,thr[0].name[0]);D、printf(“%s”,thr[1].name[0]);15.若有以下结构体数组的定义语句#defineN30structstudent{charnum[10];charname[10];floatscore[5];}stu[N];则以下能够对该数组结构体成员进行正确输入的语句是()A、scanf(“%s”,&stu[1].name);B、scanf(“%f”,stu[2].score[1]);C、scanf(“%s”,stu[1].num[0]);D、scanf(“%f”,&stu[3].score[3]);试题二、程序填空题。按程序功能,在划线部分填写适当的内容(每空2分,共30分)1.下述程序中的函数sort的功能是使用选择法将一维整型数组中各元素按值从大到小排序,请将该程序补充完整。voidsort(inta[],intn){inti,j,k,temp;for(i=0;in-1;i++)(1)for(j=i+1;jn;j++)if((2))(3)if(k!=i)temp=a[k];a[k]=a[i];a[i]=temp;}第2页共6页2.程序功能:输入10个范围在[1,20]内的整数,按输入数据的顺序输出这10个数中出现两次以上的数。程序运行示例:输入10个整数:1251851218916171812518程序】#includestdio.hvoidmain(){inta[20],x,k,i;for(i=1;i=20;i++)a[i]=0;printf(输入10个整数:);k=0;while(k10){scanf(%d,&x)(4);if((5))printf(“%d”,x);(6);}}3.程序功能:从输入的10个字符串中找出长的那个串,请填空补充以完成程序意图。#includestdio.h#includestring.h#defineN10intmain(){chara[N][81],m[81];inti,k;for(i=0;iN;i++)gets((7));(8);for(i=1;iN;i++)if(strlen(a[i])strlen(m))(9)printf(“Longofstring:%s\n”,(10));}4.程序功能:从键盘上输入n的值,输出2n-1行用*号组成的菱形,例如输入n=5,输出的图形如下:#includestdio.hintmain(){intn,i,j;printf(Pleaseinputthennumber!\n);scanf(%d,&n);for(i=1;i=n;i++){for(j=1;j=(11);j++)printf();for(j=1;j=(12);j++)printf(*);printf(\n);}for(i=(13);i=1;i--){for(j=1;j=(14)j++)printf();for(j=1;j=(15);j++)printf(*);printf(\n);}return0;}试题三、程序阅读题:阅读程序,写出程序的正确输出结构(每题2分,共10分)1.#includestdio.hintmain(void){inta=2,b=3;floatx=3.5,y=2.5,k;k=(float)(a+b)/2+(int)x%(int)y;printf(“%.2f\n”,k);return0;}第3页共6页2.#includestdio.hintmain(void){inti,j,x=0;for(i=0;i2;i++){x++;for(j=0;j=3;j++){if(j%2)continue;x++;}x++;}printf(“x=%d\n”,x);return0;}3.阅读下列程序并回答问题。#includestdio.hvoidmain(){intdata1,data2,res;charop;scanf(%d,&data1);op=getchar();while(op!='='){scanf(%d,&data2);switch(op){case'+':res=data1+data2;break;case'-':res=data1-data2;break;case'*':res=data1*data2;break;case'/':res=data1/data2;break;case‘%’:res=data1%data2;break;default:res=0;}data1=res;op=getchar();}printf(%d\n,res);}问题1:程序运行时,输入7/2=则输出结果?问题2:程序运行时,输入1+3*10-10%2=则输出结果?4.写出下列程序的运行结果#includestdio.h#includestring.hintmain(void){voidsort(char*name[],intn);voidprint(char*name[],intn);char*name[]={“Basic”,“Fortan”,“C++”,“Java”,”Pascal”}intn=5;sort(name,n);print(name,n);return0;}voidsort(char*name[],intn){char*temp;inti,j,k;for(i=0;in-1;i++){k=i;for(j=i+1;jn;j++)if(strcmp(name[k],name[j])0)k=j;if(k!=i){temp=name[i];name[i]=name[k];name[k]=temp;}}}voidprint(char*name[],intn){inti;for(i=0;in;i++)puts(name[i]);}5.写出下列程序的输出结果#includestdio.h第4页共6页structst{intnum;charname[10];intage}x[3]={{1,”zhang”,19},{2,”li”,20},{3,”wang”,21}},*p=x;voidmain(){printf(“%s,%d\n”,(p+2)-name,(*p).age);}试题四、程序设计题(共30分)1.(8分)编写函数intisprime(intm),判断某一个数是否是一个素数。调用该函数求解1~500之间的素数,并每行输出5个。2.(14分)设计学生成绩管理系统:要求(1)有N个学生,每个学生的信息包含学号,姓名,和M门课的成绩即有结构体数组#defineN30#defineM5structstudent{charnum[10];charname[20];floatscore[M];floatstu_avg;floatcource_avg;}stu[N](2)利用函数voidinput(structstudent*p,intn,intm)完成数据的输入(3)利用函数voidprocess(structstudent*p,intn,intm)计算每个学生M门课的平均成绩;(4)利用函数voidoutput(structstudent*p,intn,intm)将处理结果输出;(5)设计main()函数进行测试。3(8分)编写程序实现下面功能:将一行字符中的每个单词的第一个字母改成大写,并将处理结果保存在文件”d:\\program\\result.txt”中。第5页共6页杭州电子科技大学学生考试卷(A)卷参考答案(请把答案写到答题纸上)试题一、单项选择题(每小题2分,共30分)题号12345678910答案CAABACBDDC题号1112131415答案CADBD二、填空题(每空2分,共30分)1.(1)k=i;(2)a[j]a[k];(3)k=j;2.(4)a[x]++;(5)a[x]=2或a[x]==2(6)k++;3.(7)a[i](8)strcpy(m,a[0]);(9)strcpy(m,a[i]);(10)m4.(11)n-i(12)2*i-1(13)n-1(14)n-i(15)2*i-1试题三、程序阅读题:阅读程序,写出程序的正确输出结构(每题2分,共10分)1.k=3.502x=83.(1)3(2)14.Basic\nC++\nFortan\nJav
本文标题:C语言程序设计10年A卷试题及答案
链接地址:https://www.777doc.com/doc-2908110 .html