03303043高级语言程序设计(上)期末考试试卷A(上机考试)_第1页
03303043高级语言程序设计(上)期末考试试卷A(上机考试)_第2页
03303043高级语言程序设计(上)期末考试试卷A(上机考试)_第3页
03303043高级语言程序设计(上)期末考试试卷A(上机考试)_第4页
03303043高级语言程序设计(上)期末考试试卷A(上机考试)_第5页
已阅读5页,还剩2页未读 继续免费阅读

下载本文档

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

文档简介

PAGE7/7上海电机学院2010–2011学年第1学期(03303043)《高级语言程序设计》(上)期末考试试卷A卷开课学院:电子信息学院出卷教师:吉顺如考试形式:闭卷考试时间90分钟上机考考生姓名:赵君阳学号:19班级:BQ0902题序一二三四五总分得分评卷人一、选择题(共20分,每小题1分)1.在一个C语言程序中下列说明正确的是(B)A)main()函数必须出现在所有函数之前B)main()函数可以在任何地方出现C)main()函数必须出现在所有函数之后D)main()函数必须出现在固定位置2.二进制语言是属于(A)A)面向机器语言B)面向问题语言C)面向过程语言D)面向汇编语言3.下列符号串中,属于C语言合法标识符的是(A)A)floatB)sumoneC)2maxD)max24.以下选项中合法的C语言字符常量是(C)A)‘\092'B)"x"C)‘\xAB’D)‘xy’5.若有以下程序段,则变量c的二进制值是(A)inta=6,b=3,c;c=a^b<<2;A)00011011B)00001010C)00011000D)6.要输入实数,用格式字符(C)。A)%dB)%cC)%fD)%s7.putchar()函数可以向终端输出一个(D)A)整型变量表达式B)实型变量值C)字符串D)字符或字符型变量8.若x是int类型变量,y是float类型变量,则为了将数据55和55.5分别赋给x和y,则执行语句:scanf(“x=%d,y=%f”,&x,&y,);时,正确的键盘输入是(A)。A)5555.5↙B)x=55,y=55.5↙C)55↙55.5↙D)x=55↙y=55.5↙9.设x,y和z是int型变量,且x=1,y=2,z=3,则下面表达式中值为0的是(D)A)x&&yB)x<=yC)x||y+z&&y-zD)!((x<y)&&!z||1)10.为了避免嵌套的if-else语句的二义性,c语言规定else总是与(C)组成配对关系。A)缩排位置相同的ifB)在其之前末配对的ifC)在其之前未配对的最近的ifD)同一行上的if11.以下叙述中正确的是(C)A)用C程序实现的算法必须要有输入和输出操作B)用C程序实现的算法可以没有输出但必须要有输入C)用C程序实现的算法可以没有输入但必须要有输出D)用C程序实现的算法可以既没有输入也没有输出12.要把高级语言编写的源程序转换为目标程序,需要使用(D)A)编辑程序 B)驱动程序 C)诊断程序 D)编译程序13.程序段:intnum=0;while(num<=2)printf(“%d,”,num++);的循环执行的次数(C)A)1次B)2次C)3次D)4次14.C语言中while和do-while循环的主要区别是(A)A)do-while的循环体至少无条件执行一次B)while的循环控制条件比do-while循环控制条件严格C)do-while允许从外部转到循环体内D)do-while的循环体不能是复合语句15.以下不正确的描述是(B)A)break语句不能用于循环语句和switch语句外的任何其它语句B)在switch语句中使用break语句或continue语句的作用相同C)在循环语句中使用continue语句结束本次循环,但不会终止整个循环D)在循环语句中使用break语句是会跳出循环体,提前结束循环16.执行下列语句序列后,不可能出现的运行结果是(D)intn;scanf(“%d”,&n);switch(n){case1:case2:putchar('X');case3:case4:putchar('Y');break;default:putchar('Z');}A)显示:XB)显示:YC)显示:ZD)显示:XY16.若有以下的数组定义:chara[]="abcd";charb[]={'a','b','c','d','e'};则正确的描述是(B)A)a数组和b数组长度相同B)a数组长度大于b数组长度C)a数组长度小于b数组长度D)两个数组中存放相同的内容17.若有定义:charstr1[30],str2[30];则输出较大字符串的正确语句是:(C)A)if(strcmp(strl,str2))printf("%s",strl);B)if(strl>str2)printf("%s",strl);C)if(strcmp(strl,str2)>0)printf("%s",strl);D)if(strcmp(strl)>strcmp(str2))printf("%s",strl);18.假设有定义inti,t[][3]={1,2,3,4,5,6,7,8,9};执行语句for(i=0;i<3;i++)printf("%d",t[2-i][i]);后的输出结果是(C)A)357B)753C19.若变量已正确定义,且x的值是1,y的值是2,z的值是4,计算表达式(x=y==z)后各变量的值为(C)A)x=0,y=2,z=4B)x=1,y=4,z=4C)x=4,y=20.设有数组定义:chararray[]=”China”;则数组所占的空间是(B)A)4个字节

B)5个字节

C)6个字节

D)7个字节二、填空题(共20分,每空格1分)1.C程序是由函数构成的。其中有并且只能有1个主函数。一个函数由两部分组成:函数的首部和函数体。2.若x和n均是int型变量,且x的初值为26,n的初值为7,则计算表达式x%=(n%=4)后,变量x的值为23.表达式2.5+10/4=4.5。若定义inta=4,b;则表达式(b=6*5,a*4),a+16的值是__30,16,32____4.十进制数89,转换为二进制数为1011001,转换为十六进制数为59 5.假设有定义a=b=c=d=m=n=4。则执行表达式(m=a>b)&&(n=c>d)后,n的值为6.当a=3,b=2,c=1时,表达式x=a>b>=c的值是37.若有定义inta=15,b=7,c;则执行c=(a%b<1)||(a/b>1);后c的值为48.能判断x是数字字符的C语言表达式是charc[]9.若有定义intw=5,x=2,y=6,z=4;则条件表达式w<x?w:(y<z?y:z)的值是410.将数学式转换成C语言表达式cos(sqrt(x*x))/(a+b)。11.若有定义:doublea[3][5];则a数组中列下标的上限为312.有如下语句:chara[]={”Howareyou!”};sizeof(a)=,strlen(a))=1213.二维数组A[4][5]={{2,2,4},{4,6,5,6},{0}};中元素A[1][1]的值是14.若有定义:charp[20]={'a','b','c','d'},r[]="xyz";则执行语句strcat(p,r);printf("%s\n",p);后的输出结果是15.在C语言中,标识符只能由字母、数字和下划线字符组成,并且第一个字符不能是___数字_____字符。16.定义intb=7;floata=5.2,c=6.9;则表达式b*(int)(a+c)/2的值为__42_______三、程序改错题(共18分,每小题6分)1、下列程序从键盘输入一个数n,求1~n之和并输出。请纠正程序中存在错误,使程序实现其功能。如输入5↙输出:Thesumfrom1to5is15#include<stdio.h>main(){inti=1,n;floatsum;scanf(“%d”,n);for(i<n;i++);sum+=i;printf(“Thesumfrom1to%dis%d\n”,n,sum);}2、下列程序从键盘输入任意一行字符串(设字符数不大于20),提取该字符串中的数字字符并组成一个整数,输出该整数及其两倍的值。请纠正程序中存在错误,使程序实现其功能。如输入:abc12e3fgh4i则输出:12342468#include<stdio.h>voidmain(){inti,n=0;charstr[80];gets(str[80]);for(i=0;str[i]!='\n';i++)if(str[i]>=0&&str[i]<=9)n=n*10+str[i]; printf("%d%d\n",n,2*n);}3、下列程序的功能为:已知圆锥半径r和高h,计算圆锥体积v。请纠正程序中存在错误,使程序实现其功能。#include<stdio.h>main();{floatr=10,h=5;v=1/3.0*3.14159*r*r*h;printf("v=%f\n",v);}四、程序填空题(共18分,每空格2分)1、下列程序的功能为:输出100以内能被4整除且个位数为8的所有整数;请填写适当的符号或语句,使程序实现其功能。程序运行结果为:828486888#include<stdio.h>main(){inti,j;for(i=0;i<10①;i++){j=i*10+8;if(i%4!=0②)continue③;printf("%d",j);}}2、以下程序的功能是:采用二分法在给定的有序数组中查找用户输入的值,并显示查找结果。请填写适当的符号或语句,使程序实现其功能。如输入5输出为:找到位置为6如输入10输出为:10未找到源程序:#include"stdio.h"#defineN10main(){inta[]={0,1,2,3,4,5,6,7,8,9},k;intlow=0,high=N-1,mid,find=0;printf("请输入欲查找的值:\n");scanf("%d",&k);while(low<=high){mid=④;if(a[mid]==k){printf("找到位置为:%d\n",mid+1);find=1;}if(a[mid]<k)⑤;else⑥;}if(!find)printf(“%d未找到\n”,k);}3.以下程序输入n和n个大于1的正整数,输出其中素数。如输入:51993113715则输出:191137例示说明:先输入n为5,再输入5个正整数,输出5个整数中的素数#include<stdio.h>voidmain(){ intn,a,i,j,ct; scanf("%d",&n); for(i=0;⑦;i++) { ⑧; scanf("%d",&a); for(j=2;j<a;j++) if(⑨) ct++; if(ct==0) printf("%d",a); } printf("\n");}五、编程题(共24分,每小题6分)2+x>71.从键盘输入实数x,按照下列公式计算并输出y值:y=5+3x-7≤x≤73x2x<-7#include<stdio.

温馨提示

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

评论

0/150

提交评论