💞💞 1.C语言程序的基本单位是(C)。 A.程序行 B. 语句 C. 函数 D.字符 💞💞 2.已知各变量的类型说明如下:
int m=6,n,a,b;
unsigned long w=8;
double x=3.14,y=0.12;
则以下符合C语言语法的表达式是(A)。 A.a+=a-=(b=2) * (a=8)自右向左 B.n=n3=18 C.x%3 D.y=float(m) 💞💞 3.设有定义“ int x=3 , y , * p=&x” ,则下列语句中使 y 不为 3 的语句是(D) A y=&x ; B y=*p; C y=x; D y=&x; 解析: (A)&x 即把x的地址取出来,赋给p,再解引用即可以使y=3; (B)因为 *p=&x;所以 *p 即可以找到x的值,即为3 (C)因为 x=3,直接把x赋值给y,所以y=3; (D)&x 是获取的x的地址赋给y,所以y不能输出3 💞💞 4.设x、y、z均为 int 型变量,则执行语句:x=y=3; z=++x || ++y; 后 y的值为 (C) A、不定值 B、4 C、3 D、1 解析: 因为中间是 || 先执行++x 是真,判断 || 操作运算符,有一真即为真,所以进行赋值z,再++y;因为后面没有使用y的值,所以y=3; 💞💞 5.设a=4,b=6,c=7,d=8,m=3,n=2,则执行(m=a>b) && (n=c>d) 后n的值为(B)。 A.0 B.2 C.3 D.1 解析: a=4,b=6. 显而可见 a<b 所以a>b 为假, && 操作符 有一假即为假,所以会出现 短路特性,n的值不会改变 💞💞 6.下述对C语言字符数组的描述中错误的是 (C ) 。 A.字符数组可以存放字符串 B.字符数组中的字符串可以整体输入、输出 C.可以在赋值语句中通过赋值运算符"=“对字符数组整体赋值 D.不可以用关系运算符对字符数组中的字符串进行比较 解析: 数组只能在初始化的时候进行赋值操作,以后就不能进行赋值操作了 💞💞 7.有如下函数调用语句 f1 (a ,b-c , (d,e) ) ; 该函数调用语句中,含有的实参个数是(A)。 A.3 B.4 C.5 D.有语法错 解析: (d,e)是一个逗号表达式,它的值为最后一个数的值即e的值。 所以有3个参数。 💞💞 8.以下选项中,与 k=n++完全等价的表达式是(A)。 A) k=n,n=n+1 B) n=n+1,k=n C) k=++n D) k+=n+1 解析: n是后置++,即先使用n的值,再进行+1操作 即 先把·n的值赋值给k,n再执行+1操作 💞💞 9.当执行下面程序时,如果输入ABC,则输出结果是(A) #include <stdio.h> #include <string.h> int main() { char ss[10]=“12345”; gets(ss); strcat(ss,“6789”); printf(”%s\n",ss); return 0; } A.ABC6789 B.ABC67 C.12345ABC6 D.ABC456789 解析: gets(ss)即是输入字符串 ABC,ABC会把123 的空间占用,后面有一个 ‘\0’ 占用4的空间,所以遇到‘\0’后会自动结束,再进行串连接函数,在‘\0’ 后连接,即是ABC6789‘\0’ 💞💞 10.若已定义int a,则表达式(a=10,a+10,a++)的值是(B) A.20 B.10 C.21 D.11 解析: 逗号表达式,最后一个表达式为值,a++,后面没有赋值语句,所以a还是原来的值。 💞💞 11.以下程序的执行结果是(A) int i=10, j=10; printf("%d,%d\n",++i,j–); A.11,10 B.9,10 C.11,9 D.10,9 解析: ++i 是前置加加 先给 i的值进行+1操作,再使用i的值 所以 i=11 j-- 是后置减减 先给使用 j的值,再进行-1操作 所以 j=10 💞💞💞💞💞
填空 1.结构化设计中的三种基本结构是
*顺序,选择,循环
2.定义int x,y;执行 y=(x=1,++x,x+2) ;后,y 的值是
4
3.若有定义int a=12,n=5,则表达式a%=(n%2)运算后, a 的值为
0
解析: 先算括号里面的n%2 结果为1 a=a%1; 所以a=0;
4.在定义int a[5][6]后,第10个元素是
(a[1][3])
解析: a[5][6] 是5行6列的数组 第一行有6个元素 要找第10个元素 a[1][0]是第7个元素 所以a[1][3]是第10个元素
5.设变量a是整型,f是实型,i是双精度型,则表达式10+‘a’+ i * f 值的数据 类型为
double
解析: 实型*双精度型 +整形 还是双精度型即为double
%
7.字符串"a"在内存中占据的字节个数为
2
解析: 因为是字符串a,所以后面还有一个‘\0’ 所以是两个字节数
8.C语言中的回车换行是
\n
9.要调用输入输出时,在#include命令行中应包含
stdio.h
10.已知字符‘a’的ASCII码为97,执行下列语句的输出是 printf ("%d,%c",‘b’,‘b’+1);
98,c
解析: 因为a的ASCII码为97 所以字符b的 ASCII码为98 ‘b’+1=99; 用%c的形式输出来,所以会打印字符‘c’
11.警告提示不影响程序正常运行
(正确)
12.程序编译时,需要对注释进行处理。
(错误)
13.C语言中主函数的个数是任意的。
(错误)
解析·: 只能有一个main函数 14.do……while语句执行次数可能为0。
(错误)
解析: 先执行一次,再进行判断是否满足条件
15.C语言中规定,if语句的嵌套结构中,else总是与最近的且尚未配对的if 配对。
(正确)
16.二维数组a可以这样定义inta[][4]
(正确)