程序运行后的输出结果是( )。 A) 2 B) 4 C) 6 D) 3 (25) 有以下程序 #include
void main( int argc, char *argv[] ) {
int n=0,i;
for(i=1; i
编译连接后生成可执行文件tt.exe,若运行时输入以下命令行 tt 12 345 678
程序运行后的输出结果是()。
A) 12 B) 12345 C)12345678 D)136 (26) 有以下程序 #include
void main(void) { int s=a,i=0;
for(;i<2;i++) s+=f(i); printf (\}
程序运行后的输出结果是( )。
A)24 B)28 C)32 D)36
(27) 有一个名为init.txt的文件,内容如下: #define HDY(A,B) A/B
# define PRINT(Y) printf(“y=%d\\n”,Y) 有以下程序
#include “init.txt” void main(void) {
int a=1,b=2,c=3,d=4,k; k=HDY(a+c,b+d); PRINT(k); }
下面针对该程序的叙述正确的是()。
A)编译有错 B)运行出错 C)运行结果为 y=0 D) 运行结果为 y=6 (28) 有以下程序
struct S {int n; int a[20];}; void f(struct S *P) {
int i,j,t;
for(i=0;i if(p->a[i]>p->a[j]){ t=p->a[i]; p->a[i]=p->a[j]; p->a[j]=t; } } void main(void) { int i; struct S s={10,{2,3,1,6,8,7,5,4,10,9}}; f(&s); for(i=0;i 程序运行后的输出结果是()。 A)1,2,3,4,5,6,7,8,9,10, B)10,9,8,7,6,5,4,3,2,1, C)2,3,1,6,8,7,5,4,10,9, D)10,9,8,7,6,1,2,3,4,5, (29)有以下程序 void main(void) { unsigned char a=2,b=4,c=5,d; d=a|b; d&=c; printf(“%d\\n”,d); } 程序运行后的输出结果是()。 A)3 B)4 C)5 D)6 (30) 有以下程序 #include FILE *fp; int i,a[6]={1,2,3,4,5,6}; fp=fopen(\ fwrite(a,sizeof(int),6,fp); fseek(fp,sizeof(int)*3,SEEK_SET); /*该语句使读文件的位置指针从文件头向后移动3个int型数据*/ fread(a,sizeof(int),3,fp); fclose(fp); for(i=0;i<6;i++) printf(\} 程序运行后的输出结果是( )。 A)4,5,6,4,5,6, B)1,2,3,4,5,6, C)4,5,6,1,2,3, D)6,5,4,3,2,1, 二、填空题(16分,每小题8分) (1)以下程序的功能是:求出数组x中各相邻两个元素的和依次存放到a数组中,然后输 出。请填空。 #include int x[10],a[9],i; for (i=0;i<10;i++) scanf(“%d”,(a)); for( (b) ;i<10;i++) a[i-1]=x[i]+ (c) ; for(i=0;i<9;i++) printf(“%d”,a[i]); printf(“\\n”); } (2)以下程序的功能是:利用指针指向三个整型变量,并通过指针运算找出三个数中的最大值,输出到屏幕上,请填空: #include int x,y,z,max,*px,*py,*pz,*pmax; scanf(“%d%d%d”,&x,&y,&z); px=&x; py=&y; pz=&z; pmax=&max; (a) ; if(*pmax<*py) *pmax=*py; if((b)) *pmax=*pz; printf(“max=%d\\n”, (c)); } 三、编程题(24分,每小题12分) (1)完成其中的函数fun2(int a[],int n,int b[],int c[])实现: 将数组a中大于-20的元素,依次存放到数组b中,将数组b中的元素按照从小到大的顺序存放到数组c中,函数返回数组b中的元素个数。 #include int fun1(int a[],int n,int b[],int c[]) { ? } void main(void) { int n=10,i,nb; int aa[10]={12,-30,22,20,15,-39,11,23,-46,100}; int bb[10],cc[10]; printf(\ printf(\ for(i=0;i printf(\ printf(\ for(i=0;i printf(\ printf(\ for(i=0;i (2)完成其中函数fun(char *s),统计输入字符串中空格的个数。 #include int fun2(char* s){ ? } void main() { char str[255]; gets(str); printf(\ } 华大08-09第1学期《C语言程序设计》 补考试卷参考答案 一、选择题(60分,每题2分) (1)D)(2)B) (3)C) (4)A) (5)D) 6)A) (7)B) (8)C) (9)D) (10)C) (11)A) (12)B) (13)A) (14)A) (15)A) D) (16)B)(17)D) (18)A) (19)B)(20)B)(21)D) (22)B) (23)C) (24)C) (25)D) (26)B) (27)D) (28)A) (29) B) (30)A) 二、填空题(16分,每小题8分) (1)(a)&x[i] (b)i=1 (c)x[i-1] (2)(a) *pmax=*px(或*pmax=x) (b)*pmax<*pz或max<*pz (c) max或*pmax 三、编程题(24分) (1)int fun1(int a[],int n,int b[],int c[]) { int i,b_index=0,k,t; for(i=0;i for(i=0;i c[i]=b[i]; for(i=1;i if(c[k]>c[k+1]){t=c[k];c[k]=c[k+1];c[k+1]=t;} return b_index; } (2)int fun2(char* s) { int i=0,count=0; while(s[i]!='\\0'){ if(s[i]==' ') count++; i++; } return count; } 华侨大学08-09学年第2学期《高级语言程序设计》重修试卷 专业(班级) ____________________ 考试时间 2 0 0 9 年 7 月 15 日 学 号 ________________________ 姓名___________ 成绩______ 注意:请将所有答案写在答卷上! 一、简答题(10分,每小题2分) (1)若有int a=3,b=6; ,则表达式(a++) , (--b)的值是多少? (2)若有int a; double d; char ch;,则表达式a+ch+d的类型是什么? (3)若double x;,则应如何使用scanf函数输入值给变量x?如何使用printf函数输出变量x的值? (4)简述结构化程序设计的三种基本结构。 (5)简述break语句使用的场合。 二、阅读下列程序,写出运行结果(25分,每小题5分) (1)有以下程序: #include unsigned int x=0xFFFF;