C语言的选择题1

更新时间:2023-10-27 07:19:01 阅读量: 综合文库 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

1.main( )函数的位置(D)。

A.必须在自定义函数后面 B.必须在自定义函数前面 C. 必须位于程序的最前面 D. 可以在自定义函数后面 2. (A)为正确的变量名。

A. k_5 B. k.jeep C. -k15 D. int

3. 若有定义 int a,x; 则语句 a=(x=8,x+8); 运行后,变量a、x的值依次为(D)。 A.8, 16 B.16, 16 C.8, 8 D.16, 8 4. 设整型变量x为7,使整型变量y不为2的表达式是(A)。 A. y=x%3 B. y=8-(--x) C. y =(++x)/3 D. y = x/3

5. 已有定义 char s; 使用scanf( )函数输入一个字符给变量s,不正确的函数调用是(A)。 A. scanf(\6. 若定义 int a=2,b=3; 则表达式 !a||b 的值为(B)。 A. 3 B.1 C.2 D.0

7. 若已定义 int m=7;float k=5.5; 则表达式 k+ m%2/4 的值为(B) A.6.375 B.5.5 C.5.75 D.6.75

8. 若已定义 int a=1,b=2,t=3; 则执行以下程序段后变量a,b,t的值分别为(D )。 if(a

{ t=b; b=a; a=t; }

A. a=2,b=1,t=3 B. a=2,b=1,t=1 C. a=3,b=1,t=2 D. a=2,b=1,t=2 9. 在循环语句的循环体中,break语句的作用是(A)。 A. 提前结束循环,接着执行该循环后续的语句 B. 暂停程序的运行

C. 继续执行break语句之后的循环体各语句 D. 结束本次循环

10. 数组元素下标的数据类型为( A)。 A.整型常量、字符型常量或整型表达式. B. 实型常量或实型表达式 C. 任何类型的表达式 D. 字符串常量

11. 若有定义:int s[3][4]={{1,2},{0},{3,4,5}};则s[2][1]的值为(D)。 A.3 B.0 C.1 D.4 12. 有如下定义:

char str[10]={ \

则分配给数组str的存储空间是(D)个字节。

A.11 B.8 C.9 D.10 13 以下程序运行后输出结果是(C)。 void fun(int i) { int m=2; m=i++;

printf(\ \}

main()

{ int m=7,n=5; fun(n);

printf(\}

A.6 7 B.5 5 C.5 7 D.6 6 14. 以下程序运行后输出结果是(D)。 #define MIN(m,n) m

{ int a=3,b=5,c;

c=2*MIN(a,b); 2*a

A.10 B.6 C.3 D.5 15. 有以下语句:

int a[5]={0,1,2,3,4,5},i; int *p=a;

设0≤i<5,对a数组元素不正确的引用是(B)。

A. a[p-a] B. *(*(a+i)) C. *(&a[i]) D. p[i]

16. 若有以下程序段,则不能正确访问数组元素a[1][2]的是(C)。 int (*p)[3];

int a[ ][3]={1,2,3,4,5,6,7,8,9}; p = a;

A. p[1][2] B. (*(p+1))[2] C. p[1]+2 D. *(*(a+1)+2) 17. 以下程序段的运行结果是( D)。 union { int n;

char str[2]; }t;

t.n=80; t.str[0]='a'; t.str[1]=0;

printf(\

A.a B.80 C.0 D.97 18. 若有以下定义: struct node { int data;

struct node *next; };

struct node *p;

已建立如下图所示的链表:

┌──┬──┐ ┌──┬──┐ ┌──┬──┐ p →│data│next┼→│data│next┼→...─→│data│NULL│ └──┴──┘ └──┴──┘ └──┴──┘

指针p指向第一个结点,能输出链表所有结点的数据成员data的循环语句是(C)。

A. for( ; p; p=p->next)

printf(\B. for( ; p!=NULL; p++) printf(\C. while(p)

{ printf(\ p=p->next; }

D. while(p!=NULL) { printf(\ p++; }

19. 若有定义:int m=7,n=10,k; 则执行语句k=m&n;后k的值为(B)。 A.1 B.2 C.17 D.15 20. 对于以下程序,说法正确的是(B)。 #include main()

{ FILE *fp;

fp=fopen(\ if(fp!=NULL)

{ fprintf(fp,\ fclose(fp); printf(\ } }

A. 程序运行之前,当前工作目录下一定存在quiz.txt文件

B. 程序运行后,当前工作目录下存在quiz.txt文件,其中的内容是\C. 程序运行后,当前工作目录下存在quiz.txt文件,其中的内容是\D. 程序运行之前,当前工作目录下一定不存在quiz.txt文件 21.C语言函数体由(C)括起来。

A.[ ] B.( ) C. { } D. < > 22. 下面叙述中,错误的是(C)。

A. 自增与自减运算符的结合方向为“自右至左”

B. C语言中的表达式求值,是按其运算符的优先级先高后低的次序进行 C. C语言算术运算符不包含模运算符“%” D. 关系运算符的优先级低于算术运算符

23. 函数putchar( ) 的功能是向终端输出(B)。 A. 一个关系表达式 B. 一个字符 C. 一个实型变量值 D. 多个字符 24. 判定逻辑值为“真”的最准确叙述是(D)。

A. 1 B. 大于0的数 C. 非0的整数 D. 非0的数 25. 设已定义 float a=2.0,b=3.0; 使a值为5.0的表达式是(A)。 A. a+= b B. a*=b+2.0 C. a-=b+2.0 D. a/=b+2.0 26. 以下程序运行的结果是(D)。

void main() {int x,y,z,a;

x=y=z=1;a=15; if(!x) a--; else if(y) ; if(z) a=3; else a+=4;

printf(\}

A. 14 B. 19 C. 15 D. 3

27. 以下程序段运行后,循环体运行的次数为(B)。 int i=8,a=0; for ( ;i<8;i++) a+= i;

A. 无限 B. 0次 C. 8次 D. 1次 28. ( B)是正确的数组定义。 A. int n;

scanf(\ int x[n]; B. int x[10];

C. int N=10;int x[N]; D. int n=10,x[n];

29. 不能对二维数组a进行正确初始化的语句是(C)。

A. int a[3][2]={1,2,3,4,5}; B. int a[3][2]={{1},{2,3},{4,5}}; C. int a[3][2]={{1,2,3},{4,5,6}}; D. int a[][2]={{1,2},{3,4},{5,6}}; 30. 以下程序段运行后a的值为(C)。 int a=2;

char s1=\a=strcmp(s1,s2);

A. -1 B. 1 C. 0 D. 2

31. 自定义函数中若缺省函数值类型,则隐含的类型是( C )。 A. float B. long C. int D. double 32. 以下叙述正确的是()。

A. \定义了与30等价的符号常量PRICE B. 编译预处理命令行都必须以\开头

C. 一个源程序只能有一个编译预处理命令行

D. 使用带参数的宏定义时,应该说明每个参数的数据类型 33. 若有定义int *p1,*p2; 则错误的表达式是(C )。 A. p1

int a[]={1,2,3,4,5,6,7},*p=a; int n,sum=0;

for(n=1;n<6;n++) sum+=p[n++]; printf(\

A.12 B.16 C.15 D.27

35. 一个结构体变量占用的内存大小是( C)。

A. 第一个成员所需内存容量 B. 最后一个成员所需内存容量 C. 各成员所需内存容量之和 D. 占内存容量最大的成员所需容量 36. 假定已有如下定义: int k ;

enum colors {red, green, blue, pink} ; int a[3];

(B)是对以下语句是否符合语法规则的正确判断。 a[red]=pink; /* 语句1 */ red=1; /* 语句2 */ k=green+blue; /* 语句3 */ A. 语句1正确,语句2和语句3错误 B. 语句1和语句3正确,语句2错误 C. 语句1和语句2正确,语句3错误 D. 语句2和语句3正确,语句1错误

37.若变量 m, n, t已定义且赋予初值,则正确的表达式是( C )。 A.m=int(5.6%4) B.m=m\\2 C. m=6+n+t,m++ D. m=m+1=t-n

38. 已有定义 char s; 使用scanf( )函数输入一个字符给变量s,不正确的函数调用是(A)。 A. scanf(\ B. scanf(\ C. scanf(\ D. scanf(\

39. 能正确表示数学关系式 100≤s<300的表达式为( A)。 A. (s>=100) && (s<300) B. 100<= s<300

C. (s>=100) & (s<300) D. (s>=100) and (s<300) 40. 已定义 double k=3.6; 则正确的赋值表达式是(D)。

A. k%3 B. k=k*(-1.0)=-3.6 C. k=double(-3.6) D. k+=k-=(k=1.2)*(k=3) 43. 若已定义 int x[4]={2,1,3}; 则元素x[1]的值为(D)。 A. 3 B. 2 C.0 D.1

44. 以下程序段运行后输出结果是(C)。 char s[]=\printf(\

A. 5 B. 9 C. 4 D. 8 45. 以下叙述正确的是(B)。

A. 宏名只能包含大写字母和数字字符

B. 宏展开不占用运行时间,只占用编译时间 C. 编译预处理命令行必须以分号结束

D. 程序中使用带参数的宏时,参数类型要与宏定义时一致 46. 以下程序段运行后,表达式*(p+4)的值为(B)。 char a[]=\ char *p;

本文来源:https://www.bwwdw.com/article/lgn2.html

Top