《C语言程序设计笔试模拟试题-答案.pdf》由会员分享,可在线阅读,更多相关《C语言程序设计笔试模拟试题-答案.pdf(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)0
3、 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)11 12 B)1112
5、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;printf(#);printf($n);A)*#*#*#$B)#*#*
6、#*$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,n=n+1 B)n=n+1,k=n C)k=+n D)k+=n+121)已知小写字母 a 的 ASCII 码为 9
7、7,对于 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,17 D)8,1623)有以下程序main()int i=1,j=1,k=2;if(j+|k+)&i+)printf(%d,%d,%dn,i,
8、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,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;m
9、ain()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)*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
10、)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=&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);3
11、0)表示图中坐标轴上阴影部分的正确表达式是()。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&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
12、;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)stud1.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)1
13、6 C)10 D)不确定x36)以下函数的功能是:通过键盘输入数据,为数组中的所有元素赋值。#define N 10 void arrin(int xN)int i=0;while(iN)scanf(%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+
14、2;printf(“s=%fn”,s);A)double item=2,s=0;B)double 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=-1 B)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,
15、&j);printf(i=%d,j=%dn,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=
16、1;j=4-i;j+)printf(“);for(j=1;j=【4】2*i-1_;j+)printf(“*”);printf(“n”);4)以下程序的功能是计算 s=1+,请填空。!21!31!1nmain()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)【
17、6】k=p ;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”);图:12436 948 12 16