C语言模拟试题1.docx
- 文档编号:15769878
- 上传时间:2023-07-07
- 格式:DOCX
- 页数:17
- 大小:21.08KB
C语言模拟试题1.docx
《C语言模拟试题1.docx》由会员分享,可在线阅读,更多相关《C语言模拟试题1.docx(17页珍藏版)》请在冰点文库上搜索。
C语言模拟试题1
学号:
姓名:
所属学院:
年级:
专业:
装订密封线
考生答题不得出现红色字迹,除画图外,不能使用铅笔答题;答题留空不足时,可写到试卷背面;请注意保持试卷完整。
题号
一
二
三
总分
统分人签字
满分
45
30
25
100
得分
得分
评卷人
一、基础知识选择题(本大题共30小题,每小题1.5分,共45分,每个选择题只有一个正确答案)
1、一个C程序总是从()开始执行。
A、程序的第一条执行语句B、主函数C、子程序D、主程序
2、在C语言中,int,char和shortint三种类型变量所占用的内存大小是()。
A、均为2个字节B、由用户自己定义C、由所用机器的字长决定D、是任意的
3、若有以下类型说明语句:
chara;intb;floatc;shortintd;
则表达式(c*b+a)*d的结果类型是()。
A、charB、intC、doubleD、float
4、若有说明语句:
intw=1,x=2,y=3,z=4;
则表达试w>x?
w:
z>y?
z:
x的值是()。
A、4B、3C、2D、1
5、设x,y为int型变量,则执行下列语句后,y的值是()。
x=5;
y=x++*x++;
y=--y*--y;
A、529B、2401C、1209D、625
6、C语言中函数返回值的类型是()。
A、return语句中的表达式类型B、调用函数的类型
C、总是int型D、定义函数时所指定的函数类型
7、若变量均已正确定义并赋值,以下合法的C语言赋值语句是()
A、x=y==5; B、x=n%2.5; C、x+n=i; D、x=5=4+1;
8、有以下程序段
int j;float y; char name[50];
scanf("%2d%f%s",&j,&y,name);
当执行上述程序段,从键盘上输入555667777abc后,y的值为()。
A、55566.0 B、566.0 C、7777.0 D、566777.0
9、有输入语句:
scanf("a=%d,b=%d,c=%d",&a,&b,&c),为使变量a的值为1.b为3,c为2,从键盘输入数据的正确形式应当是()。
A、132<回车>
B、1,3,2<回车>
C、a=lb=3c=2<回车>
D、a=1,b=3,c=2<回车>
10、以下程序的输出结果是()。
main()
{inta=100,x=l0,y=20,ok1=5,ok2=0;
if(x if(y! =10) if(! ok1)a=1; elseif(ok2) a=10; a=-1; printf("%d\n",a); } A、1 B、0 C、-1 D、值不确定 11、若有说明语句: chars1[4]=“12”; char *ptr; 则执行下列语句后输出为()。 ptr=s1; printf(“%c\n”,*(ptr+1)); A、字符‘2’ B、整数2 C、字符串“12” D、字符‘1’ 12、若有以下语句 intx[]={2,4,6,8,10,12},*ptr; ptr=x; 则对数组元素的正确引用为()。 A、x B、x[6] C、*(--ptr) D、*(++ptr) 13、若有说明语句: inti,x[3][4];则不能实现将x[1][1]的值赋给变量i的语句是()。 A、i=*(*(x+1)+1) B、i=*(*(x+1)) C、i=x[1][1] D、i=*(x[1]+1) 14、若已定义了如下的共用体类型变量x,则x所占用的字节数(在16位PC机条件下)为()。 union data{ inti; charch; double f; }x; A、7 B、11 C、8 D、10 15、如下说明语句: enum A {A0=1,A1=3,A2,A3,A4,A5}; enum A B; 执行: B=A3; printf(“%d\n”,B); 输出的是()。 A、5 B、3 C、2 D、编译时出错 16、已知字符'A'的ASCII代码值是65,字符变量c1的值是'A',c2的值是'D'。 执行语句printf("%d,%d",c1,c2-2 );后,输出结果是() A、A,B B、A,68 C、65,66 D、65,68 17、以下叙述中错误的是() A、改变函数形参的值,不会改变对应实参的值 B、函数可以返回地址值 C、可以给指针变量赋一个整数作为地址值 D、当在程序的开头包含头文件stdio.h时,可以给指针变量赋NULL 18、以下正确的字符串常量是() A、"\\\" B、'abc' C、OlympicGames D、"" 19、设有定义: char p[]={'1','2','3'},*q=p;,以下不能计算出一个char型数据所占字节数的表达式是() A、sizeof(p) B、sizeof(char) C、sizeof(*q) D、sizeof(p[0]) 20、有以下函数 int aaa(char *s) { char *t=s; while(*t++); t--; return(t-s);} 以下关于aaa函数的功能的叙述正确的是() A、求字符串s的长度 B、比较两个串的大小 C、将串s复制到串t D、求字符串s所占字节数 21、while(! x)中的条件表达式(! x)与下面条件( )等价。 A、x==0 B、x==1 C、x==0||x==1 D、x! =0 22、有以下说明语句,则对结构体变量s的成员num的不正确引用是( ) struct student{ intnum; intage; }s,*p; A、s.num B、*p.num C、p->num D、(*p).num 23、说明语句int(*p)[10]定义了p是( ) A、指针数组 B、指向数组的指针 C、返回值为整型的函数指针 D、指向整型数的指针 24、下面对文件操作函数描述正确全面的是( ) int n_read=read(intfd,char*buf,intn); A、从文件fd中读n个字节存放在buf中 B、从文件fd中读n个整数存放在buf中 C、从文件fd中读n个字节存放在buf中,并将n赋给n_read D、从文件fd中读n个字节存放在buf中,并将实际读入的字节数和出错代码赋给n_read 25、C语言的编译系统对宏命令是( ) A、在程序运行时进行代换处理的 B、在程序连接时进行处理的 C、与程序中其他C语句同时进行编译的 D、在对源程序其他成分正式编译之前进行处理的 26、在一个C源程序文件中所定义的全局变量,其作用域为() A、所在文件的全部范围 B、所在程序的全部范围 C、所在函数的全部范围 D、由具体定义位置和extern说明来决定范围 27、若程序中有宏定义行: #defineN 100则以下叙述中正确的是() A、宏定义行中定义了标识符N的值为整数100 B、在编译程序对C源程序进行预处理时用100替换标识符N C、对C源程序进行编译时用100替换标识符N D、在运行时用100替换标识符N 28、以下关于typedef的叙述错误的是() A、用typedef可以增加新类型 B、typedef只是将已存在的类型用一个新的名字来代表 C、用typedef可以为各种类型说明一个新名,但不能用来为变量说明一个新名 D、用typedef为类型说明一个新名,通常可以增加程序的可读性 29、设有以下定义 uniondata {int d1; floatd2;}demo; 则下面叙述中错误的是() A、变量demo与成员d2所占的内存字节数相同 B、变量demo中各成员的地址相同 C、变量demo和各成员的地址相同 D、若给demo.d1赋99后,demo.d2中的值是99.0 30、有以下程序 #include main() { int a=1,b=2,c=3,x; x=(a^b)&c;printf("%d\n",x); } 程序的运行结果是() A、0 B、1 C、2 D、3 得分 评卷人 二、简单程序分析题(共10小题,每小题3分,共30分,每个选择题只有一个正确答案) 1、运行下面的程序,其输出是( ) main() {inta[]={2,4,6,8,10},y=1,x,*p; p=&a[1]; for(x=0;x<3;x++) y+=*(p+x); printf(“%d\n”,y);} A、17 B、18 C、19 D、20 2、运行下面的程序,其输出是( ) main() {inti=1; while(i<19) if(i++%5! =3) continue; else printf(“%4d”,i); printf(“\n”); } A、2 5 7 9 11 13 15 17 B、3 6 9 12 15 18 C、4 9 14 19 D、3 8 13 17 19 3、运行下面的程序后,其正确的输出是( ) main() {staticinta[5]={7,2,8,4,5}; staticint*pa[5]={&a[0],&a[1],&a[2],&a[3],&a[4]}; int**p,i; p=pa; for(i=0;i<5;i++) {printf(“%d\t”,**p+2); p++;} printf(“\n”); } A、9 4 10 6 7 B、7 2 8 4 5 C、7 4 10 4 5 D、2 3 4 5 6 4、下面程序运行后,其输出是( ) main() {inti; intn=2; while(++n<20) {i=1; while(++i {if(n%i==0) break; if(i==n-1) printf(“%d\t”,n); } printf(“\n”); } } A、2 5 7 9 13 17 19 B、3 5 7 11 13 17 19 C、2 3 5 7 11 13 17 19 D、3 5 7 11 13 17 20 5、下面程序运行后,其输出是( ) main() {inti,j,k; intfunc(); i=1,j=2,k=3; printf(“%d\n”,func((j+=k,j++),(i,i++,++i))); } intfunc(intx,inty) {intz; z=x%y; return(z); } A、2 B、0 C、1 D、3 6、下面程序运行后,其输出是( ) intx,y; one() {inta,b; a=25,b=10; x=a-b;y=a+b; } main() {inta,b; a=9,b=5; x=a+b;y=a-b; one(); printf(“%d,%d\n”,x,y); } A、14,4 B、14,35 C、15,35 D、15,4 7、下面程序运行后,其输出是( ) #include void printd(inti); main() {intn=123; printd(n); } void printd(intn) {inti; if(n<0) {n=-n;putchar(‘-‘);} putchar(n%10+’0’); if((i=n/10)! =0) printd(i); } A、123 B、321 C、3 D、1 8、下面程序运行后,其输出是( ) structsample{ inta,b; char *ch; }; void f1(structsampleparm); main() {structsamplearg; arg.a=1000;arg.b=100;arg.ch=”abcd”; f1(arg); } void f1(structsampleparm) {parm.a+=parm.b; parm.ch[2]=‘x’; printf(“%d\n”,parm.a); printf(“%s\n”,parm.ch); } A、1000 B、1100 C、1100 D、100 abcd abcd abxd abcd 9、下面程序运行后,其输出是( ) main() {staticchars[30]=“abcdefg”; staticchart[]=“abcd”; inti,j; i=0; while(s[i]! =‘\0’) i++; j=0; while(t[j]! =‘\0’) {s[i+j]=t[j]; j++;} s[i+j]=‘\0’; printf(“%s\n”,s); } A.abcdabcdefg B.abcdefg C.abcd D.abcdefgabcd 10、下面程序运行后,其输出是( ) main() {inta[4][4],i,j,k; for(i=0;i<4;i++) for(j=0;j<4;j++) a[i][j]=i+j; for(i=1;i<4;i++) for(j=i+1;j<4;j++) {k=a[i][j]; a[i][j]=a[j][i]; a[j][i]=k; } for(i=0;i<4;i++) {printf(“\n”); for(j=0;j<4;j++) printf(“%4d”,a[i][j]);} } A、0 1 2 3 B、0 1 2 3 C、0 1 2 3 D、3 2 1 0 1 2 3 4 1 2 5 4 1 2 4 2 4 3 2 1 2 3 4 5 2 3 4 5 2 3 5 3 5 4 3 2 3 4 5 6 3 4 5 6 3 4 6 4 6 5 4 3 得分 评卷人 三、填空题(本大题共10小题,每个空栏2.5分,共25分,请各题的横线上填写正确答案) 1、执行以下程序时输入1234567 #include main() { int a=1,b; scanf("%2d%2d",&a,&b); printf("%d %d\n",a,b); } 2、以下程序的输出结果是。 #include main() { int n=12345,d; while(n! =0){d=n%10;printf("%d",d);n/=10;} } 3、有以下程序段,且变量已正确定义和赋值 for(s=1.0,k=1; k<=n; k++) s=s+1.0/(k*(k+1)); printf("s=%f\n\n", s); 请填空,使下面程序段的功能与之完全相同 s=1.0; k=1; while() { s=s+1.0/(k*(k+1)); ; } printf("s=%f\n\n", s); 4、下面的程序是将一个十六进制数字字符串转换成与它等价的十进制整数值并输出。 十六进制数的字符是从0到9和a到f或A到F。 主函数负责收集字符,并判别它们是否是十六进制字符,函数htoi负责转换工作。 #include #definemaxline100 #define eof -1 #define yes 1 #define no 0 inthtoi(); main() {intc,i,isdigit; chart[maxline]; i=0; isdigit=no; while((c=_________)! =eof&&i { if(c>=’0’&&c<=’9’||c>=’a’&&c<=’f’||c>=’A’&&c<=’F’) {isdigit=yes; t[i++]=_____c______; } else if(isdigit==yes) {isdigit=no; t[i]=’\0’; printf(“%d”,___________); i=0; } } } inthtoi(char*s) { inti,n; n=0; for(i=0;s[i]! =’\0’;i++) {if(s[i]>=‘0’&&s[i]<=‘9’) n=n*16+s[i]-_____________; if(s[i]>=‘a’&&s[i]<=‘f’) n=n*16+s[i]-‘a’+10; if(s[i]>=‘A’&&s[i]<=‘F’) n=n*16+s[i]-‘A’+10; } return____; }
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 语言 模拟 试题