: 名姓装 订 : 线号学 : 级班 哈尔滨工程大学本科生考试试卷 ( 2010-2011 年 二 学期) 课程编号: 0906011 课程名称: 程序设计基础(A) 注意:考试时间为120分钟。程序中表示空格。所有答案请写在答题卡上。 一、基础知识(每题2分,共20分) 1、设有定义:float x, y, n; 与代数式x+y2n计算结果不相符的表达式是【 1 】。A)(x+y)*n/2 B)(1/2)*(x+y)*n C)(x+y)*n*1/2 D)n/2*(x+y) 2、设有定义:int x, y, t; 则执行语句x=y=5; t=++x||++y; 后,y的值为【 2 】。A)0 B)5 C)6 D)1 3、设有定义:char *st=\则下列程序段中不正确的是【 3 】。 A)char a[11], *p; strcpy(p=a+1,&st[4]); B)char a[11]; strcpy(++a, st); C)char a[11]; strcpy(a, st); D)char a[11], *p; strcpy(p=&a[1],st+2); 4、变量a所占内存字节数是【 4 】。 ??struct m ??{int c; ?? float b,d; ??}a; A)4 B)10 C)6 D)8 5、设有定义:int i=0; 则循环while (i=0) i++; 的执行次数是【 5 】次。 A)0 B)1 C)65535 D)无数 6、与if(e) 等价的是【 6 】。 A)if(e==0) B)if(e!=0) C)if(e==1) D)if( e!=1) 7、设有定义int x=5,y=4,z; z=(x++>++y)? x: y; 则z的值是【 7 】。 A)4 B)5 C)6 D)0 第1页 共2页 8、若fp指向的文件已读到末尾,则feof(fp)的返回值是【 8 】。
A)EOF B)-1
C)非零值 D)NULL
9、以下叙述不正确的是【 9 】。
A)分号是C语句的必要组成部分 B)C程序的注释可以写在语句的后面 C)函数是C程序的基本单位 D)主函数的名字不一定用main表示
10、以下错误的描述是【 10 】。
A)函数调用可以出现在执行语句中 B)函数调用可以出现在一个表达式中
C)函数调用可以作为一个函数的实参 D)函数调用可以作为一个函数的形参
二、阅读程序,写出程序的运行结果(每题4分,共28分)
1、下列程序输出结果为【 1 】。 #include
2、下列程序输出结果为【 2 】。 #include
3、下列程序输出结果为【 3 】。 #include
第2页 共 2页
s+=i; i++; return s; } void main() {int i,a=0; for(i=0;i<5;i++) a+=f(); printf(\} 4、下列程序输出结果为【 4 】。 #include
for(j=i+1;a[j]!='\\0';j++) if(a[j]==c)
{for(k=j+1;a[k]!='\\0';k++)
a[k-1]=a[k]; a[k-1]='\\0'; } } printf(\} 5、下列程序输出结果为【 5 】。 #include
第3页 共4页
}stu[4]={10001,80,10002,100,10003,70,10004,50}; int i,k,x; x=stu[0].score; k=0;
for(i=1;i<4;i++) if(x 6、下列程序输出结果为【 6 】。 #include void main() {int a[100]={1,2,1,44,-5,5321,777,8,29,-10},n=10; ss(a, n); printf(\} 7、下列程序输出结果为【 7 】。 (设当前文件夹下文件file.txt的内容为123456#) #include fp=fopen(\ 第4页 共 4页 装订线 : 名姓装 订 : 线号学 : 级班 while((ch=fgetc(fp))!='#') if(++n%2)putchar(ch); fclose(fp); } 三、程序填空题(每空2分,共24分) 1、程序的功能是:判断素数。 # include scanf(\【 1 】); for(i=2;i 2、程序的功能是:输出100以内能被3整除且个位数为6的所有整数。 #include \void main() {int i,j; for(i=0;【 4 】;i++) {j=i*10+6; if(【 5 】)continue; printf(\【 6 】\ } } 3、程序的功能是:用“冒泡”法对数组a进行由大到小的排序。 #include \ 【 7 】 fun(int a[], int n) {int i,j,t; for (j=0;j 第5页 共6页 if(【 8 】) {t=a[i]; a[i]=a[i+1]; a[i+1]=t; } } void main() {int i,a[10]={3,7,5,1,2,8,6,4,10,9}; 【 9 】; for(i=0;i<10;i++) printf(\} 4、程序的功能是:用“递归”方法计算两个数的最大公约数。 #include scanf(\ printf(\【 11 】); } int gac(int a,int b) {int c; c=a%b; if(c==0) 【 12 】; else return gac(b,c); } 四、问答题(每问2分,共8分) 程序1、 #include 第6页 共 6页 void main() { int n,i=0; char c[20]; scanf(\ while(n) {c[i++]=n%2+'0'; n/=2;} i--; while(i>=0) putchar(c[i--]); } 问题1:表达式n%2+'0' 的作用是什么? 问题2:程序的功能是什么? 程序2、 #include printf(\ scanf(\ while(s>100||s<0) {printf(\scanf(\ } n=(s<60)?69:68; if(s>=70) n=67; if(s>=80) n=66; if(s>=90) n=65; printf(\} 第7页 共8页 问题3:若输入为85时,输出是什么? 问题4:程序的功能是什么? 五、改错题(每错2分,共12分) (注:请在答题卡上写出正确的语句) 1、程序的功能是:打印所有小于100的可以被11整除的自然数。 #include for(i=1;i<100;i++); /**** Found ****/【1】 if(i=0) /**** Found ****/【2】 printf(\ /**** Found ****/【3】 } 2、程序的功能是:输出所有三位的Armstrong数,即其值等于它本身每位数字立方和的数。如153就是一个Armstrong数。153=13+53+33 #include for(i=100;i<=9999;i++) /**** Found ****/【4】 {d1=i/100; d2=i/10; /**** Found ****/【5】 d3=i; if(i==d1^3+d2^3+d3^3) /**** Found ****/【6】 printf(\ } } 六、编写程序(8分) 1、程序的功能是:从键盘输入200个整型数据。统计并输出所有正数的平均值。(要求必须用for循环实现) 第8页 共 8页 装订线 百度搜索“77cn”或“免费范文网”即可找到本站免费阅读全部范文。收藏本站方便下次阅读,免费范文网,提供经典小说教育文库10级C语言期末考试题--A在线全文阅读。
相关推荐: