《C语言程序设计笔试模拟试题-答案.docx》由会员分享,可在线阅读,更多相关《C语言程序设计笔试模拟试题-答案.docx(9页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、C语言程序设计笔试模拟试题一、 选择题(每小题1.5分,共60分)1)C语言的基本数据类型包括( )。A)整型,实型,逻辑型 B)整型,实型,字符型C)整型,字符型,逻辑型 D)整型,实型,逻辑型,字符型2)以下( )组中的标识符都是合法的C语言用户标识符。A)a_10 B)CHAR C)_int D)signed3ab a#b day a3)b在内存中以( )个字节存放。A)1 B)2 C)3 D)不确定4)下述合法的C语言的字符常量是( )。A)A B)65 C)A D)t5)C语言中的函数( )。A)可以嵌套定义 B)不可以嵌套调C)可以嵌套调用,但不可以递归调用 D)嵌套调用和递归调用
2、均可6)在一个C语言程序中( ):A) main函数必须出现在所有函数之前B) main函数可以在任何地方出现C) main函数必须出现在所有函数之后D) main函数必须出现在固定位置7)C语言中用于结构化程序设计的三种基本结构是( )。A)顺序结构、选择结构、循环结构 B)if、switch、break C)for、while、do-while D)if、for、continue8)执行a=3*4,a+5;后a的值为( )。A)17 B)12 C)60 D)59)对于int x=12, y=8; printf (“%d%d%d”, !x, x | y, x&y); 输出的结果是( )。 A
3、)0 1 1 B)0 1 0 C)0 0 0 D)1 1 110)C语言中函数返回值的类型是由( )决定的。A)return语句中的表达式类型 B)调用该函数的主调函数类型C)调用函数时临时指定 D)定义函数时所指定的函数类型11)若用数组名作为函数调用时的实参,则实际上传递给形参的是( )。A)数组地址 B)数组的第一个元素值C)数组中全部元素的值 D)数组元素的个数12)下列各语句定义了数组,其中哪一个是正确的( )。A)int a5,b2,3; B)char no(30);C)int x; D)int x5=1,2,3;13)将整型变量a、b中的较小值为变量c赋值,下列语句中正确的是(
4、)。 A)c= =(ab)? a:b; B)c=if(ab)a else b;C)c=(ab)? a:b; D)(ab)? c=a:c=b;14) 有以下程序段 int m=0,n=0; char c=a;scanf(%d%c%d,&m,&c,&n);printf(%d,%c,%dn,m,c,n);若从键盘上输入:10A10,则输出结果是( )。A)10,A,10 B) 10,a,10 C) 10,a,0 D) 10,A,015)有定义语句:int x, y;,若要通过scanf(%d,%d,&x,&y);语句使变量x得到数值11,变量y得到数值12,下面四组输入形式中,错误的是( )。 A)
5、11 12 B)1112 C)11,12 D)11,1216) 若有定义:int a=8,b=5,c;,执行语句c=a/b+0.4;后,c的值是( )。A) 1.4 B) 1 C) 2.0 D) 217)运行下列程序段后,i的结果是( )。 int i=10; switch(i) case 9: i+=1; case 10: i+=1; case 11: i+=1; default: i+=1; A)11 B)12 C)13 D)1418)下列程序输出结果是( )。 main() int i; for(i=1;i=5;i+) if(i%2) printf(*); else continue;
6、printf(#); printf($n); A)*#*#*#$ B)#*#*#*$ C)*#*#$ D)#*#*$19)下列条件语句中,功能与其他语句不同的是( )。A) if(a) printf(%dn,x); else printf(%dn,y);B) if(a=0) printf(%dn,y); else printf(%dn,x);C) if (a!=0) printf(%dn,x); else printf(%dn,y);D) if(a=0) printf(%dn,x); else printf(%dn,y);(20) 以下选项中,与k=n+完全等价的表达式是( )。A) k=n,
7、n=n+1 B) n=n+1,k=n C) k=+n D) k+=n+121)已知小写字母a的ASCII码为97,对于int a=99, b=b; printf(“%c,%d”, a , b);的结果是( )。A) 99, b B)c, 98 C)99, 98 D)c, b22)下列程序正确的运行结果是( )。main() fun(int x,int y) int j=4,m=1,k; int m=0,i=2;k=fun(j,m); i+=m+1;printf(%d,k); m=i+x+y;k=fun(j,m); return(m);printf(%dn,k); A)8,20 B)8,8 C)
8、8,17 D)8,1623) 有以下程序main() int i=1,j=1,k=2;if(j+|k+)&i+) printf(%d,%d,%dn,i,j,k);执行后输出的结果是( )。 A) 1,1,2 B) 2,2,1 C) 2,2,2 D) 2,2,324)执行以下程序段后的结果是( )。main() int a=-5; do printf(%2d,a-);while(!a);A)-5 B)-6 C)不打印任何内容 D)陷入死循环25) 有以下程序:main() int i=0,s=0;doif(i%2)i+;continue;i+;s+=i; while(i7);printf(%dn
9、,s);执行后输出的结果是( )。A) 16 B) 12 C) 28 D) 2126) 有以下程序:void f(int x,int y) int t;if(xy) t=x; x=y; y=t; main() int a=4,b=3,c=5;f(a,b); f(a,c); f(b,c);printf(%d,%d,%dn,a,b,c);执行后输出的结果是( )。A) 3,4,5 B) 5,3,4 C) 5,4,3 D) 4,3,527) 若有一些定义和语句#include int a=4,b=3,*p,*q,*w;p=&a; q=&b; w=q; q=NULL;则以下选项中错误的语句是( )。A
10、) *q=0; B) w=p; C) *p=&a; D) *p=*w;28) 有以下程序main() char s=n123;printf(%d,%dn,strlen(s),sizeof(s);执行后输出结果是( )。A) 赋初值的字符串有错 B) 6,7 C) 5,6 D) 6,629) 以下程序中,能够通过调用函数fun,使main函数中的指针变量p指向一个合法的整型单元的是( )。A) main()int *p; fun(p); int fun(int *p) int s; p=&s;B) main()int *p;fun(&p); int fun(int *p) int s; *p=&
11、s;C) #includemain() int *p;fun(&p); int fun(int *p)*p=(int*)malloc(2);D) #includemain() int *p;fun(p); int fun(int *p)p=(int*)malloc(sizeof(int);30)表示图中坐标轴上阴影部分的正确表达式是( )。x a b cA)(x=b)&(x=c) B)(x=a)|(b=x=c)C)(x=b)&(x=c) D)(x=a)&(b=x=c)31)变量ch是英文字母的表达式为( )。 A)(a=ch=z)|(A=ch=a & ch=A & ch=a & ch=A &
12、ch=Z) D) (A=ch=z)&(A=ch=z)32)( )等价于while(!x)。 A)while(x=1) B)while(x=0)C)while(x!=0) D)while(x!=1)33)设变量定义为:int n,*p;char ch,*q,*g;,则语句( )是不正确的。 A)p=&n;g=q=&ch; B)p=&n;q=&ch; C)p=&n;g=&ch D)p=&n;q=&ch;g=p;34)设变量定义如下,则对其中的结构分量num正确的引用是( )。 struct student int num; Char name20; float scire; stud10; A)s
13、tud1.num = 10; B)student.stud.num = 10; C)struct.stud.num = 10; D)struct student.num = 10;35)下列程序段的输出结果是( )。 int t,a3 = 10,5,1; int *p; for(p =a; pa+3; p+) t =t + *p; /没有赋初始值printf(“%d” ,t); A)15 B)16 C)10 D)不确定36)以下函数的功能是:通过键盘输入数据,为数组中的所有元素赋值。 #define N 10 void arrin(int xN) int i=0; while(iN) scan
14、f(%d, ( ) ); 在下划线处应填入的是 A)x+i B)&xi+1 C)x+(i+) D)&xi+37)下列程序功能是根据下式计算s 的值,要求精确到最后一项的绝对值小于106,请选择以下各小题,完成程序。 s = 1-1/3+1/5-1/7+. #include #include void main() int flag = 1, t = 1; ( )while( ) item = flag * 1.0 / t ; s = s + item ; ; t =t+2; printf ( “s = %fn” ,s); A) double item = 2 , s = 0;B) double
15、 item = 0 , s = 0; C) double item = 1 , s = 1;D) double item = 3 , s = 1; A)item=1e-6; C)fabs(item)=1E-6 A)flag = -1B)s = -s C)flag = -flag;D)t = -t 38)假设定义:int x = 3, y = 3; 则复合赋值表达式x /= 1+y的值为( )。 A) 0 B) 0.75 C) 6 D) 以上都错二、填空题(每空2分,共40分)1)若有程序main() int i,j;scanf(i=%d,j=%d,&i,&j);printf(i=%d,j=%d
16、n ,i,j);要求给i赋10,给j赋20,则应该从键盘输入【1】i=10,j=20 。2)以下程序从终端读入数据到数组中,统计其中正数的个数,并计算它们之和。main() int i,a20,sum,count;sum=count=0;for(i=0;i20;i+) scanf(%d,【2】&ai );for(i=0;i0) count+;sum+=【3】ai ;printf(sum=%d,count=%dn,sum,count);3)下面程序的功能是输出以下形式的金字塔图案是: * * * *main( ) int i,j; for(i=1;i=4;i+) for(j=1;j=4-i;j+
17、) printf(“ “); for(j=1;j=【4】2*i-1_;j+) printf(“*”); printf(“n”);4)以下程序的功能是计算s=1+,请填空。main() int n,i;double s=0.0,fac=1.0; scanf(%d,&n);for(i=1;i=n;i+)fac=fac【5】/double(i) ;s=s+fac; printf(“%lf”,s);5) indmax返回数组s中最大元素的下标,数组中元素的个数由t传入,请填空 。int findmax(int s, int t) int k,p; for(p=0, k=p; psk) 【6】k=p ;
18、 return 【7】(k) ;6)以下fun函数的功能是将一个字符串的内容颠倒过来,请填空。#include “string.h”void fun(char str) int i,j,k; for(i=0,j= 【8】strlen(str)-1 ; i=0 ) if ( xamax ) amax=x; else if(x=0 and si0 ) t+= 【16】i%10 ; i/=10; printf(“%dn”,t);10)以下程序输出如右图所示的九九乘法表。Main() int i, 【17】j ; for(i=【18】1 ;i=9;i+) for(j=1; 【19】j=i ;j+)printf(“%4d”,i*j);printf( 【20】”n” );12 43 6 94 8 12 16 图: