《C语言程序设计模拟试题A附答案》由会员分享,可在线阅读,更多相关《C语言程序设计模拟试题A附答案(21页珍藏版)》请在人人文库网上搜索。
1、A 语言程序设计模拟试卷C 分)20一、单项选择题(每题2分,共 。1、下列有关C语言的叙述中错误的是(D) A) C语句必须以分号结束 程序中有且只有一个主函数B) 任何一个C C) 复合语句在语法上可被看作一条语句 程序中对数据的任何操作都可由运算符实现D) C )。2、以下不能定义为用户标识符的是(C D) C) 2ong A) MAIN B) _HJ LINE1 )。C3、以下能正确定义一维数组的是( a5=”012345”; B) int A) int a5=0,1,2,3,4,5; a5=0,1,2,3,4,5;D) char C) char a =”012345”; )。C4、执。
2、行下列程序段后输出的结果是( x = 9; while (x 7) - -; printf(“*”); x D) * C) * A) * B) * char str110 = “ABCDE”, str210 = “xyz”;、设5 。D)strlen(strcpy(str1, printf(“%d”, str2); 后的输出结果是(则执行语句 解析: 后面有字符串结束符 XYZ, Z strcpy(str1,str2); 后,str1 里是 执行后,函数返回的是 str1, strcpy(str1,str2); 而 因为str1 里是新值 XYZ, 3。strlen(strcpy(str1,s。
3、tr2) 就是 strlen(str1的新值),所以得strlen 统计到字符串结束符以前,即,不计入字符串结束符。 A) 9 B) 8 C) 5 D) 3 6、若用数组名作为函数调用的实参,则传递给形参的是(A)。 数组第一个元素的值 B) 数组的首地址 A) 数组元素的个数 D) C) 数组中全部元素的值 )。程序中,若未在函数定义时说明函数类型,则函数默认的类型为(C7、在C char) D)double C)int A)void B 。)、下面不能正确进行字符串赋值操作的语句是(C8 s=ABCD;B) char s5; A) char s5=ABCD; D) char *s=ABCD。
4、; C) char *s;?屆; :这样理论上的没错的把s指针指向字符串可以改变s解析指针但不能改变其指向的值正确的应该是这样 char s = ABCDEF; 或char s8;strcpy(s, ABCDEF); 9、设有说明int s5=1,3,5,7,9; int *p=s; 则下列表达式中值为3的是 (C)。 A)+p B)+(*p) C) *(+p) D) *(p+=2) : 解析A是把p得地址后移一个int单位长度,即使p指向数组的第二个元素。 B是取得p当前指向的元素值然后加1,即1+1=2; C是先移动p,使其指向第二个元素,然后取得当前指针指向的元素值,即3. D是先使p指。
5、向数组的第三个元素,然后去的当前指针指向的元素的值,即5。 10、下面程序的输出结果是(B)。 int m=13; int fun( int x, int y) int m=3; return( x*y-m); main( ) int a=7,b=5; printf(“%dn”, fun(a,b)/m); A) 1 B) 2 C) 3 D) 10 二、填空题。(每空2分,共30分) 1.设有变量说明语句: int x=1,y=2; 则执行下述printf语句的输出结果是__1.000000_ printf(%fn,1.0+x/y); 2.执行下述程序: #include main() int 。
6、x,y; scanf(-%*2s_x001D_,&x,&y); printf(%dn,x+y); 若从键盘输入: 12345671 则程序的输出结果是__17__。 :x,y为int类型,x的长度为2,y的长度为1解析,即x为12,y为5,故x+y=17 3.以下程序的功能是:从键盘上输入若干名学生的成绩(百分制,可带小数,以输入负数或0为结束标志),统计并输出最高成绩和最低成绩。请填空。 #include main() float x,amax,amin; scanf(%f,&x); amax=x; amin=x; while (x0) if (xamax) amax=x; else if 。
7、(x main() int a6,i; for (i=0;i3)%5; printf(=,ai); printf(); ,01(i3)为真时值为,反之为解析:6.执行下述程序的输出结果是___6___。 #include main() int a=2,4,6,*ptr=&a0,x=8,y,z; for (y=0;y main() int a2=10,20,30,40,50,60,(*p)2; p=a; printf(%dn,*(*(p+2)+1); 8.执行以下程序的输出结果是__10_。 #include main() int s,i,sum(); for (i=1;i main() int。
8、 a10=1,2,3,4,5,6,7,8,9,10,i,n=10; invert(a,n-1); for (i=0;is_ k=*s; *s=*t; *t=k; s+; t-; 12.若有以下定义和说明,则结构体变量w在内存中所占的字节数是_____ union aa float x; float y; char c6; ; struct st union aa v; float w5; double ave; w; 13.执行下述程序的输出结果是______ _______。 #include struct str float x; char *y; *m; struct str group。
9、3= 95.0,Li, 82.5,Wang, ?卜湵 ; main() m=group; printf(%.lf,%sn,m-x,m-y); 下面的程序用来统计某文件中字符的个数。请填空。14. #include #include main() FILE *fp; long num=0; if (fp=fopen(nam.dat,)=NULL) printf(Cant open this file!n); exit(0); while (____ _____) fgetc(fp); num+; printf(um=%dn,num); fclose(fp); 15.执行下述程序后,输出结果为__。
10、____。 #include #define FUN1(a,b) a+b #define FUN2(a,b) a-b #define CAL(a,b) a*b+a+3 main() printf(%dn,CAL(FUN1(3,5),FUN2(4,5); 三、修改程序(在程序出错的语句下划横线并标号,把修改后的语句写在程序之后的横线上。每小题5分,共10分) 1下列给定程序的功能是:读入一个整数(2 #include IsPrime(int n); int i,m; m=1; for ( i=2; i #include void fun(char *p,char *q,char *c); int。
11、 k=1; while(*p!=*q) if (*p void main() char ch; int k=0; for(ch=A;ch 2. void main( ) int k=0; char c=A; do switch (c+) case A: k+; break; case B: k-; case C: k+=2; break; case D: k=k%2; break; case E: k=k*10; break; default: k=k/3; k+; while(c 3. void main() int a6=12,4,17,25,27,16,b6=27,13,4,25,23,。
12、16,i,j; for(i=0;i 4. void main() int a8=1,0,1,0,1,0,1,0,i; for(i=2;i=0) 2*x 编程实现。 2、输入10个学生3门课的成绩,用函数实现:找出最高的分数所对应的学号和成绩。 模拟试卷十一参考答案: 一、单选题 1) D 2) C 3) C 4) C 5) D 6) A 7) C 8) C 9) C 10) B 二、填空题 1、1.000000 2、17 3、x0.0 4、k=k+1 5、-3 -4 0 4 4 3 6、6 7、60 8、10 9、int *z 10、*(b+) 11、ts 12、42 13、95, Li 14。
13、、fgetc(fp)!=EOF 15、29 三、改错题 1、IsPrime(int n);改为IsPrime(int n) scanf(“%d”,k); 改为scanf(“%d”,&k); if !(n%i) m=0; continue; 改为 if (!(n%i) ) m=0; continue; if (!(k%j)&(IsPrime(j) 改为if(!(k%j)& (IsPrime(j) 2、studio.h改为 stdio.h void; fun(char *p,char *q,char *c);改为void fun(char *p,char *q,char *c) k=1改为k=0 。
14、while (*p!=*q)改为 while(*p)|(*q) k+后添加一个 四、阅读程序 1、ACEG 2、8 3、4252716 4、1022571320 五、编程题 1、 #include main() float x,y; scanf(%f ,&x); if(x struct student int num; float score3; stu10; void chosescore(struct student *stu,int n) int i=0,j=0,k=0; float temp; for(i=0;i3;i+) temp=stu0.scorei; k=stu0.num; for(j=1;jn;j+) if(tempstuj.scorei) temp=stuj.scorei; k=stuj.num; printf(%d %fn,k,temp); void main() int i; for(i=0;i10;i+) printf(put in %d student informtionn,i+1); scanf(%d%f%f%f, &stui.num,&stui.score0,&stui.score1,&stui.score2); chosescore(stu,10);。