当前位置:文档之家› C语言模拟试卷及答案详解

C语言模拟试卷及答案详解

2012―2013 学年第一学期《C 语言程序设计》模拟试卷(B)一、单项选择题(每题1分,共30分)1.C 语言程序总是从______开始执行。

A) 第一条语句 B) 第一个函数 C) 主函数 D) 子程序 2.以下选项中正确的C 语言标识符是______。

A) a+b B) 3Dmax C) _25D) %d3.以下选项中正确表示字符型常量的是______。

A) '\t'B) "a"C) 'abc'D) '279'4.以下选项中属于C 语言基本数据类型的是______。

A) 逻辑型 B) 双精度型 C) 复数型 D) 集合型 5.已知:int a=8,b=5,c;,则执行语句c=a%b+0.3;后,c 的值是______。

A) 1B) 1.3C) 3D) 3.36.设在程序中的a ,b ,c 均被定义为整型并且已赋予大于1的值,能正确表示代数式abc1的表达式是______。

A)1/a*b*c B)1/(a*b*c) C)1/a/b/(float)c D)1.0/a/b/c 7.已知字符'A'的ASCII 码值为十进制数65,则执行语句printf("%c",'A'+2);后,输出结果是______。

A) A B) C C) 65 D) 67 8.已知:int i=1;,则执行语句printf("%d",i++);后,输出结果是______。

A) 1 B) 2 C) -1 D) -2 9.以下选项中,和语句x*=y+2;等价的是______。

A) x=x*y+2; B) y=x*(y+2); C) x=y+2*x; D) x=x*(y+2); 10.以下选项中能正确判断字符变量c 不是大写字母的表达式是______。

A) c<'A' && c>'Z' B) !(c<'A' && c>'Z') C) c>='A' || c<='Z' D) !(c>='A' && c<='Z') 11.已知:float a=7.0,b=2.5;,则表达式(int)a/(int)b 的值是______。

A) 2 B) 2.8 C) 3 D) 3.512.已知:int a,b,c;,若要给变量a 、b 、c 输入数据,以下正确的输入语句是______。

A) scanf ("%d,%d,%d",a,b,c); B) scanf ("%d,%d,%d",&a;&b;&c); C) scanf ("%d,%d,%d",&a&b&c);D) scanf ("%d,%d,%d",&a,&b,&c);13.已知:int a=1,b=2;,则执行语句printf("%d",a>b?a:b);后,输出结果是______。

A) 0 B) 1 C) 2 D) 以上都不正确 14.以下选项中叙述正确的是______。

A) 在switch 语句中,不一定使用break 语句B) break 语句必须与switch 语句中的case 配合使用 C) 在switch 语句中必须使用default D) break 语句只能用于switch 语句中 15.执行以下程序后,输出结果是______。

#include <stdio.h> void main(){ int a=3,b=-1,c=1;if (a<b)if (b<0) c=0;else c++;printf("%d\n",c);}A) 0 B) 1 C) 2 D) 316.已知数学关系式x≥y≥z,以下选项中能正确表示该关系式的C语言表达式是______。

A) (x>=y)&&(y>=z) B) (x>=y)AND(y>=z) C) x>=y>=z D) (x>=y)||(y>=z)17.已知:int i=5;,则执行语句while(i<8) i+=2;后,变量i的值是______。

A) 5 B) 7 C) 8 D) 918.执行以下程序后,输出结果是______。

#include <stdio.h>void main( ){ int n=9;while(n>6) {n--;printf("%d",n);}}A) 987 B) 9876 C) 8765 D) 87619.执行以下程序后,输出结果是______。

#include <stdio.h>void main( ){ int i,s=0;for (i=1;i<=6;i++){ if(i%3==0) break;s+=i;}printf("%d\n",s);}A) 3 B) 6 C) 12 D) 2120.已知:int x[3][3]={1,2,3,4,5,6,7,8,9};,则执行语句printf("%d",x[1][2]);的输出结果是______。

A) 2 B) 5 C) 6 D) 721.以下选项中能实现将两个字符串s1和s2连接起来的语句是______。

A) strcpy(s1,s2); B) strcat(s1,s2);C) strcmp(s1,s2); D) strlen(s1,s2);22.C语言中,关于函数说法正确的是______。

A) 函数定义可以嵌套,但函数调用不可以嵌套B) 函数定义不可以嵌套,但函数调用可以嵌套C) 函数定义和函数调用均不可以嵌套D) 函数定义和函数调用均可以嵌套23.一个C语言源文件中定义的全局变量的作用域是______。

A) 本函数的全部范围B) 本程序全部范围C) 本文件全部范围D) 从定义开始至本文件结束24.执行以下程序后,输出结果是______。

#include<stdio.h>void sub(int x,int y,int *z){ *z=y-x; }void main( ){ int a;sub(10,5,&a);printf("%d",a);}A) 5 B) -5 C) 0 D) 不确定25.已知:int x,*p;,则以下赋值语句中正确的是______。

A) p=&x; B) p=*x; C) &x=*p; D) *p=*x;26.已知:char str[ ]="Hello",*ptr =str;,则表达式*(ptr+5)的值为______。

A) 'o' B) '\0' C) 'o'的地址D) 不确定27.执行以下程序后,输出结果是______。

#include <stdio.h>#define F(X) X+Xvoid main( ){ int a=5;printf("%d",2*F(a));}A) 5 B) 10 C) 15 D) 2028.有定义:int n=0,*p=&n,**q=&p;则以下选项中,正确的赋值语句是______。

A) p=1; B) *q=2; C)q=p; D)*p=5;29.已知:struct student{ int age;int num;}stu,*p=&stu;以下对结构体变量stu中成员age的非法引用是______。

A) stu.age B) (*p).age C) p->age D) p.age30.已知:FILE *fp;int ch;,能将信息写入fp所指向文件的语句是_____。

A) fgetc(ch,fp); B) ch=fgetc(fp);C) fputc(ch,fp); D) ch=fputc(fp);二、判断题(每题1分,共10分,正确划T,错误划F)1.C语言对主函数main()放置的位置没有要求,放在文件头或文件尾或文件中间都可以。

( ) 2.C语言程序一行只能写一个语句。

( )3.C语言有三种结构化程序设计方法,分别为顺序结构、选择结构和循环结构。

()4.C语言要求对所用到的变量作强制定义,“先定义后使用”。

()5.for语句作为循环控制语句时,从语法上将其括号内各个表达式都可缺省,但表达式内的分号却不可以却省。

()6.C语言中字符's'和字符串"s"是等价的,两者都占用一个字节。

()7.在C语言中,程序的最小编译单位是源文件,最小功能单位是函数。

()8.在定义指针型变量时指定的基类型为该指针变量所指向的变量类型。

()9.逗号表达式的值是第一个表达式的值。

( )10.在发生函数调用时,主~被调函数中的参数可以是简单变量,也可以是数组名,当采用数组名作为参数时其数据传递方式为单向值传递。

( )三、填空题(每空2分,共20分)1.数学式ac b 42写成C 语言表达式是___________。

2.已知int a=10,b=15;,则表达式!a<b 的值是___________。

3.已知float x=1.234;,则执行语句printf("%.2f",x);后,输出结果是___________。

4.已知int a,b,c;,则执行语句a=5+(b=6,c=4);后,变量a 的值是___________。

5.已知int x; for(x=10;x>4;x--);,则该循环共执行___________次。

6.已知float a[2][3];,则系统为数组a 分配的存储空间是___________字节。

7.已知char *p="\\Good\tMorning!";,则表达式strlen(p)的值是___________。

8.设有函数调用语句f(x,(x,y,z));,则该调用语句中实参的个数是___________。

9.已知int a[5]={1,3,5,7,9},*p=a;,则表达式*p+3的值是___________。

10.已知: union{ char c;float a;}test;则sizeof(test)的值是___________。

相关主题