程序设计试题.docx
- 文档编号:11256171
- 上传时间:2023-02-26
- 格式:DOCX
- 页数:13
- 大小:40.87KB
程序设计试题.docx
《程序设计试题.docx》由会员分享,可在线阅读,更多相关《程序设计试题.docx(13页珍藏版)》请在冰豆网上搜索。
程序设计试题
XXXXX学院(本科)试卷(B卷)
2013-2014学年第二学期
开课单位:
计算机与信息科学系,考试形式:
机试(闭)卷,允许带入场
科目:
高级语言程序设计班级:
13软工班,姓名:
学号:
题序
一
二
三
四
五
六
总分
得分
0
评卷人
说明:
1、将此文件的文件名改为班级+你的学号后两位+你的姓名,如,“2013软工1班01张三.doc”,否则不给分。
2、卷时请将此文件保存关闭后再将此文件上传到FTP服务器上,按照班级名称分单双号文件夹存放,如软工1班单号的存放在“软工1班单号”文件夹内,位置存放错误者造成的后果自负!
交卷后由监考老师确认后再离开,交卷后不得再重新交卷。
3、考试时打开除考试试卷的那个文件和visualC++窗口外,不得打开第三个其他软件,否则将以作弊论处!
4、请将答案填在相应的表或框中,只要结果窗口且尽量紧凑,如下图所示。
不符合要求者将扣分。
一、单项选择题(本大题共10小题,每小题2分,共20分)在每小题列出的四个备选项中只有一个是符合题目要求的,请将其代码填写下表中,注意,不准修改答案颜色。
题号
1
2
3
4
5
6
7
8
9
10
总分
答案
得分
0
1、下面有关for循环的正确描述是()。
A、for循环只能用于循环次数已经确定的情况
B、for循环是先执行循环体语句,后判断表达式
C、在for循环中,不能用break语句跳出循环体
D、for循环的循环体语句中,可以包含多条语句,但必须用花括号括起来
2、下列标识符组中,合法的用户标识符为()。
A、_0123与ssiped
B、del-word与signed
C、list与*jer
D、keep%与wind
3、若希望当A的值为奇数时,表达式的值为真,A的值为偶数时,表达式的值为假,则以下不能满足要求的表达式是()。
A、A%2==1B、!
(A%2==0)C、!
(A%2)D、A%2
4、C语言中最简单的数据类型包括()
A、整型、实型、逻辑型B、整型、实型、字符型
C、整型、字符型、逻辑型D、整型、实型、逻辑型、字符型
5、以下对二维整形数组a的正确说明是()。
A、inta[3][];B、floata(3,4);C、doublea[1][4];D、floata(3)(4)
6、下列关于赋值运算符的表述中,错误的是()。
A、赋值运算符优先级高于逗号运算符
B、赋值运算符的结合性是从左至右
C、赋值运算符是双目运算符
D、赋值运算符可在表达式中连用
7、错误的if语句是()。
A、if(x>y)z=x;
B、if(x==y)z=0;
C、if(x!
=y)printf("%d",x)elseprintf("%d",y);
D、if(x 8、以下对一维整形数组a进行正确初始化的语句是()。 A、inta[10]=(0,0,0,0,0);B、inta[10]={}; C、inta[]={0};D、inta[10]={10*1}; 9、关于局部变量,下列说法正确的是()。 A、定义该变量的程序文件中的函数都可以访问。 B、定义该变量的函数中的定义处以下的任何语句都可以访问。 C、定义该变量的复合语句的定义处以下的任何语句都可以访问。 D、局部变量可用于函数之间传递数据。 10、能正确表示逻辑关系: “10≥=a≥=0”的C语言表达式是() A、10>=a>=0B、a>=0anda<=10C、a>=0||a<=10D、a>=0&&a<=10 二、程序运行题(本大题共2小题,每题4分,共8分)。 将结果截图放在题后框内。 1、(得分: )运行下列代码,给一维数组a输入任意6个整数,建立一个以下内容的方阵并打印。 735621 173562 217356 621735 562173 356217 将结果窗口截图放置题后框内。 #include“” voidmain() { inta[6],i,j,k,m; printf(“输入6个整数: ”); for(i=0;i<6;i++)scanf(“%d”,&a[i]); for(i=5;i>=0;i--) { k=a[5]; for(j=4;j>=0;j--)a[j+1]=a[j]; a[0]=k; for(m=0;m<6;m++)printf(“%2d”,a[m]); printf(“\n”); } } 结果截图: 2、(得分: )运行下列代码,输入若干学生成绩,输出其中的最高分和平均分。 将结果截图放在题后框内。 #include“” voidmain(){ intgrade,max,n=0,sum=0; scanf(“%d”,&grade); max=grade; while(grade>=0){ sum+=grade; scanf(“%d”,&grade); if(grade>max)max=grade; n++; } printf(“max=%d,average=%5.2f\n”,max,*sum/n); } 结果截图: 三、程序改错题(本大题共3小题,每小题5分,共15分),请将正确代码粘贴到右边框内。 然后运行并将结果截图。 1、(得分: )以下程序实现对任意输入的四位整数,分别求出其各位数字,并按从后到前的顺序依次输出。 例如,输入为1234时,输出结果为4,3,2,1。 (提示: 利用求整和求余运算分别计算出个、十、百和千位数字,再输出)。 请改正程序中的错误,并将正确代码粘贴到右边框内,然后运行并将结果截图。 #include"" voidmain(){ inta,b,c,d,x; printf("输入4位整数: "); scanf("%d",x); a=x%10; b=a/10%10; c=a/100%10; d=a/1000; printf("%f=%d,%d,%d,%d\n",x,a,b,c,d); } 正确代码粘贴在此处: 结果截图: 2、(得分: )以下程序的功能是输入若干学生成绩存于数组中,以输入-1表示结束输入,然后求这些学生的平均成绩。 请改正程序中的错误,并将正确代码粘贴到右边框内,然后运行并将结果截图。 #include"" voidmain() {inta[50],i=0,sum; floatave; scanf("%d",&a); while(a[i]! =-1) {sum+=a[i]; i++; scanf("%d",&a); } ave=sum/i; printf("average=%f\n",ave); } 正确代码粘贴在此处: 结果截图: 3、(得分: )将3本书的书名和单价保存在结构数组中,计算并输出总价。 请改正程序中的错误,并将正确代码粘贴到右边框内,然后运行并将结果截图。 #include“” structBook{ charbookname[20]; intprice; } Bookbook[3]={“计算机导论”,“C程序设计”,“数据结构”,,,}; voidmain(){ inti; floatsumprice; for(i=0;i<3;i++) sumprice+=price; printf(“Total=%f\n”,sumprice); } 正确代码粘贴在此处: 结果截图: 四、程序填空题(本大题共3小题,每题10分,共30分),在每小题的横线上填上相应的内容。 1、(得分: )用if…elseif语句实现: 假设奖金税的税率如下(a代表奖金数,r代表税率): a<500r=0% 500<=a<1000r=5% 1000<=a<2000r=8% 2000<=a<5000r=10% 5000<=ar=20% 用户输入一个奖金数,输出税率和应交税款以及实发奖金。 完成下列代码,然后运行并将结果截图。 #include<> intmain(void) { floata,r; printf("请输入奖金数: "); ①; if(a<500)r=0; ②; elseif(a<=2000)r=; elseif(a<=5000)r=; ③; printf("利率为=%.2f,奖金数=%.2f,应交税款=%.2f,实发奖金=%.2f\n",r,a,a*r,a-a*r); return0; } 完整代码粘贴在此处: 结果截图: 2、(得分: )以下代码是: 分别定义两个字符数组str1[]和str2[],str1存放你的姓的全拼(如: peng),str2存放你名的全拼(如: Yichun),然后将字符串str2连接到字符串str1中,最后输出str1(PengYichun)。 完成下列代码,然后运行并将结果截图。 #include<> intmain() {chars1[80],s2[40]; inti=0,j=0; printf("请输入第一个字符串: "); scanf("%s",s1); printf("请输入第二个字符串: "); scanf("%s",s2); while(①) i++; while(②) s1[③]=s2[④]; s1[i]='\0'; printf("\n合并后的字符串为: %s\n",s1); return0; } 完整代码粘贴在此处: 结果截图: 3、(得分: )设计一个程序计算输入的两个数的和与差,要求自定义一个函数sum_diff(floatop1,floatop2,float*psum,float*pdiff),其中op1和op2是输入的两个数,*psum和*pdiff是计算得出的和与差。 完成下列代码。 然后运行并将结果截图。 #include<> intmain(void) { ①; floatpsum,pdiff; floatop1,op2; printf("请输入数,逗号间隔: "); scanf("%f,%f",&op1,&op2); sum_diff(②);printf("%.2f+%.2f=%.2f,%.2f-%.2f=%.2f\n",op1,op2,psum,op1,op2,pdiff); return0; } voidsum_diff(floatop1,floatop2,float*psum,float*pdiff) { ③; *pdiff=op1-op2; } 完整代码粘贴在此处: 结果截图: 五、改编题(本大题共2小题,每1小题5分,共10分),请将正确代码粘贴到右边框内。 然后运行并将结果截图。 1、(得分: )左边代码实现: 有2个候选人,每个选民只能投票选一人,要求编一个统计选票的程序,先后输入被选人的名字,最后输出各人得票结果。 现要求改编程序,如果输入的名字不在候选人列表中,结果也要显示此人以及得票结果。 #include<> #include<> structPerson{ charname[20]; intcount; }ld[2]; intmain(){ inti,j; charld_name[20]; for(i=1;i<=10;i++){ scanf(“%s”,ld_name); for(j=0;j<2;j++) if(strcmp(ldname,ld[j].name)==0) ld[j].count++; } for(i=0;i<2;i++) printf("%5s: %d\n“,ld[i].name,ld[i].count); return0; } 改编后的代码粘贴在此处: 结果截图: 2、(得分: )左边代码是使用冒泡法对10个整数按由小到大顺序排序。 请改编: 使用voidsort(int*x,intn)函数实现排序过程,在main函数中实现这10个整数的输入和输出,并调用该函数实现排序,程序的其他地方也可能要求有所改动,请按要求改编。 #include<> voidmain(){ inta[10]; inti,j,t; printf("input10numbers: \n"); for(i=0;i<10;i++)scanf("%d",&a[i]); printf("\n"); for(j=0;j<9;j++) for(i=0;i<9-j;i++) if(a[i]>a[i+1]) {t=a[i];a[i]=a[i+1];a[i+1]=t;} printf("thesortednumbers: \n"); for(i=0;i<10;i++)printf("%d",a[i]); printf("\n"); } 改编后的代码粘贴在此处: 结果截图: 六、编程题(本大题共2小题,第1小题8分,第2小题9分,共17分)请将代码粘贴在题后的代码框内,将结果窗口截图放在题后的结果框内,尽量不要跨页。 1、(8分,得分: )打印1-10000之间所有的“水仙花数”。 “水仙花数”是其各位数立方和等于该数本身。 如13+33+53=153。 //第1题代码,设置字体: TimeNewRoman,大小为: 5号,行间距: 单倍行距,段前、段后: 0行 结果截图: 2、(9分,得分: )编写程序,输入两个正整数m和n(m>=1,n<=1000),输出m和n之间的素数,每行输出10个素数并要求每行对齐,并统计素数的个数以及这些素数的和。 要求定义并调用prime(m)判断m是否是素数。 //第2题代码,设置字体: TimeNewRoman,大小为: 5号,行间距: 单倍行距,段前、段后: 0行 结果截图:
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 程序设计 试题