1、国家二级 C语言( C语言基础知识)机试模拟试卷 18及答案与解析 一、选择题 1 若有以下程序 #include stdio.h main() char c1, c2; c1=C+8-3; c2=9-0; printf(“%c %dn“, c1, c2); 则程序的输出结果是 ( A) H 9 ( B) H 9 ( C) F 9 ( D)表达式不合法输出无定值 2 下面选项中合法的字符常量是 ( A) X ( B) abc ( C) X ( D) 3 以 下叙述中正确的是 ( A)字符常量在内存中占 2个字节 ( B)转义字符要用双引号括起来,以便与普通的字符常量区分开 ( C)字符常量需要
2、用单引号括起来 ( D)字符常量是不能进行关系运算的 4 以下叙述中正确的是 ( A)字符变量在定义时不能赋初值 ( B)同一英文字母的大写和小写形式代表的是同一个字符常量 ( C)字符常量可以参与任何整数运算 ( D)转义字符用 符号开头 5 若有定义语句: char a=82; 则变量 a ( A)包含 1个字符 ( B)说明不合法 ( C)包含 2个字符 ( D)包含 3个字符 6 有以下程序 main() char c1=A, c2=Y; printf( “%d, %dn“, c1,c2 ); 程序的输出结果是 ( A)输出格式不合法,输出出错信息 ( B) 65,90 ( C) 65
3、,89 ( D) A,Y 7 C语言中 char类型数据占字节数为 ( A) 2 ( B) 3 ( C) 1 ( D) 4 8 有以下程序 main() char a=H; a = ( a =A printf(“%cn“, a ); 程序运行后的输出结果是 ( A) H ( B) A ( C) h ( D) a 9 以下正确的字符串常量是 ( A) abc ( B) Olympic Games ( D) 10 若有代数式 (其中 e仅代表自然对数的底数,不是变量),则以下能够正确表示该代数式的 C语言表达式是 ( A) sqrt(fabs(pow(n,x)+pow(x,e) ( B) sqrt
4、(abs(nx+ex) ( C) sqrt(fabs(pow(n,x)+exp(x) ( D) sqrt(fabs(pow(x,n)+exp(x) 11 表达式: (int)(double)9/2)- 9%2 的值是 ( A) 0 ( B) 4 ( C) 3 ( D) 5 12 若有定义语句: int x=12, y=8, z; 在其后执行语句 z= 0.9+x/y; 则 z的值为 ( A) 1.9 ( B) 1 ( C) 2 ( D) 2.4 13 表达式 3.6-5/2+1.2+5%2的值是 ( A) 4.8 ( B) 3.3 ( C) 3.8 ( D) 4.3 14 有以下定义: int
5、 a; long b; double x, y; 则以下选项中正确的表达式是 ( A) a%(int)(x-y) ( B) a=x y ( C) (a*y)%b ( D) y=x+y=x 15 若有以下程序 #include stdio.h main() int a=0,b=0,c=0,d; c= (a+=b, , b+=a); /*第 4行 */ d=c; ; /*第 5行 */ ; /*第 6行 */ printf(“%d,%d,%dn“,a,b,c); /*第 7行 */ 编译时出现错误,你认为出错的是 ( A)第 4行 ( B)第 5行 ( C)第 6行 ( D)第 7行 16 不能正
6、确表示数学式的 表达式是 ( A) a*b/c ( B) a/c*b ( C) a/ b* c ( D) a*(b/c) 17 C语言程序中,运算对象必须是整型数的运算符是 ( A) / ( B) % ( C) int i=0,k=18; 则不符合 C语言规定的赋值语句是 ( A) i=(a+k) =(i+k); ( B) a=a+,i+; ( C) i=a%11; ( D) i=!a; 19 设变量已正确定义并赋值,以下正确的表达式是 ( A) x=y+z+5, +y ( B) int(15.8%5) ( C) x=y*5=x+z ( D) x=25%5.0 20 若有定义语句: int x
7、=10; 则表达式 x-=x+x的值为 ( A) -20 ( B) 0 ( C) -10 ( D) 10 21 有以下程序 #include stdio.h main() int a=1,b=0; printf(“%d,“,b=a+b); printf(“%dn“,a=2*b); 程序运行后的输出 结果是 ( A) 1,0 ( B) 3,2 ( C) 1,2 ( D) 0,0 22 若变量均已正确定义并赋值,以下合法的 C语言赋值语句是 ( A) x=n%2.5; ( B) x+n=i; ( C) x=5=4+1; ( D) x=y=5; 23 若有定义语句: int a=3,b=2,c=1;
8、 以下选项中错误的赋值表达式是 ( A) a=b=c+1; ( B) a=(b=4)=3; ( C) a=(b=4) +c; ( D) a=1+(b=c=4); 24 表达式 a+=a -= a=9 的值是 ( A) -9 ( B) 0 ( C) 18 ( D) 9 25 若有以下程序 #include stdio.h main() int a=-11, b=10; a /= b /= -4; printf(“%d %dn“, a, b); 则程序的输出结果是 ( A) -1 -2 ( B) 5 -2 ( C) 4 -3 ( D) 5 -3 国家二级 C语言( C语言基础知识)机试模拟试卷 1
9、8答案与解析 一、选择题 1 【正确答案】 A 【试题解析】 字符常量允许进行简单的算术运算,则 C+ 5表示 H,而 9-0则表示数值 9。 【知识模块】 C语言基础知识 2 【正确答案】 C 【试题解析】 在程序中用单引号把一个字符括起来作为字符常量。但是为了表示字符 “”要用两个 “”表示一个反斜杠。 【知识模块】 C语言基础知识 3 【正确答案】 C 【试题解析】 在程序中用单引号把一个字符括起来作为字符常量。转义字符又称反斜线字符,这些字符常量总是以一个反斜线开 头后跟一个特定的字符,用来代表某一个特定的 ASCII字符,这些字符常量也必须括在一对单引号内,和整型常量一样,字符常量也
10、可以进行关系运算的。 【知识模块】 C语言基础知识 4 【正确答案】 C 【试题解析】 一个字符常量代表 ASCII字符集中的一个字符,在 C程序中,字符常量可参与任何整数运算,转义字符以一个反斜线开头后跟一个特定的字符。 【知识模块】 C语言基础知识 5 【正确答案】 B 【试题解析】 转义字符以一个反斜线开头后跟一个特定的字符,可以利用 ddd3位八进制 数代表的一个 ASCII字符,也可以 xhh2位十六进制数代表的一个ASCII字符。选项 A中的八进制表示出现字符 8,非法。 【知识模块】 C语言基础知识 6 【正确答案】 C 【试题解析】 C语言允许对整型变量赋以字符值,也允许对字符变量赋以整型值。在输出时,允许把字符变量按整型量输出,也允许把整型量按字符量输出。 【知识模块】 C语言基础知识 7 【正确答案】 C 【试题解析】 C语言中 char类型数据占字节数为 1。 【知识模块】 C语言基础知识 8 【正确答案 】 C 【试题解析】 表达式 a = ( a =A 相当于 a=a/(b=b/-4);a初值为 -11, b的初值为10,则运算以后 10/-4值为 -2, -11/-2值为 5。 【知识模块】 C语言基础知识