C语言题库

更新时间:2024-01-17 04:39:01 阅读量: 教育文库 文档下载

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

C语言题库

1.若要用fopen函数打开一个新的二进制文件,该文件要既能读也能写, 则文件方式字符串应是(D)。

A、\B、\C、\D、\

2.设有如下定义: struct sk {int a; float b;} data,*p; 若要使p指向data中的a域,正确的赋值语句是(C)。

A、p=(struct sk*) data.a; B、*p=data.a; C、p=&data.a; D、p=&data,a;

3. 对结构体类型的变量的成员的访问,无论数据类型如何都可使用

的运算符是(B)。

A、& B、. C、* D、->

4. 下列关于指针定义的描述,错误的是(A)。 A、指针是一种变量,该变量用来存放某个变量的值 B、指针是一种变量,该变量用来存放某个变量的地址值 C、指针变量的类型与它所指向的变量类型一致 D、指针变量的命名规则与标识符相同 5. 设有如下的程序段:

char str[ ]=\ char *ptr; ptr=str;

执行完上面的程序段后,*(ptr+5)的值为(D ).

A、不确定的值 B、'o'的地址 C、'o' D、'\\0'

6.若有以下的定义:int t[3][2];能正确表示t数组元素地址的表达式是(D)。

A、&t[1] B、t[3] C、&t[3][2] D、t[2]

7. 下列说法中正确的是(B ).

A、函数调用不占运行时间,只占编译时间. B、宏替换不占运行时间,只占编译时间. C、有参数的宏定义,就是函数.

D、在定义宏时,宏名与带参数的括弧之间可以加空格. 8. 以下叙述中正确的是(C)。

A、全局变量的作用域一定比局部变量的作用域范围大

B、未在定义语句中赋初值的auto变量和static变量的初值都是随机值 C、静态(static)类别变量的生存期贯穿于整个程序的运行期间 D、函数的形参都属于全局变量 9. 下列叙述中正确的是(B)。 A、C语言的子程序有过程和函数两种 B、C语言所有函数都是外部函数 C、C语言的函数可以嵌套定义 D、C语言编译时不检查语法

10. 函数的形式参数系统默认存储类型说明是(D)。 A、static B、extern C、register D、auto

11. 以下对C语言函数的描述中,正确的是(B)。 A、C函数既可以嵌套定义又可以递归调用 B、C程序必须由一个或一个以上的函数组成 C、函数必须有返回值,否则不能使用函数

D、C程序中有调用关系的所有函数必须放在同一个程序文件中 12. 以下不能正确进行字符串赋初值的语句是(A)。 A、char str[5]=\

B、char str[5]={'g','o','o','d'}; C、char *str=\D、char str[]=\13. 选择正确的输入语句( B).

(其中:char string[10];)使得string的内容为\

A、scanf(\B、scanf(\C、scanf(\D、scanf(\

14. 以下对二维数组a的正确说明是(D)。 A、int a[3][] B、float a(3,4) C、float a(3)(4) D、double a[1][4]

15. 下列数组说明中,正确的是(B)。

A、static char str1[],str2[];str2={\B、static char str[]=\C、static char str[]; str=\

D、static char str1[5],str2[]={\

16. 若有说明 int a[3][4];则对a数组元素的正确引用是(C)。 A、a[1,3] B、a[2][4] C、a[1+1][0]

D、a(2)(1)

17. 以下正确的描述是(A ).

A、只能在循环体内和switch语句内使用break语句 B、continue语句的作用是终止整个循环的执行 C、从多层嵌套的外层循环中退出时,只能使用goto语句 D、在循环体内使用break和continue语句的作用相同

18. 在C语言中,为了结束由while语句构成的循环,while后一对圆括号

中表达式的值应该为(C)。

A、非0 B、1 C、0 D、True

19. 针对for循环语句,for(表达式1;表达式2;表达式3),下列说法正确的是( C). A、三个表达式和中间分隔分号均可省略 B、三个表达式和中间分隔分号均不能省略 C、三个表达式可省略,但中间分隔分号不能省略 D、三个表达式不能省略,但中间分隔分号可省略 20. 若i为整型变量,则以下循环执行次数是(A)。

for(i=2;i==0;) printf(\

A、0次 B、2次 C、无限次 D、1次

21. 已知键盘输入a=4,b=3,下面程序输出的结果是(C ).

main()

{ int a,b,s;

scanf(\ s=a;

if(a

printf(\}

A、9 B、13 C、16 D、15

22. 算术运算符、赋值运算符和关系运算符的运算优先级按从高到低的顺序依次为(A )。 A、算术运算、关系运算、赋值运算 B、关系运算、赋值运算、算术运算 C、算术运算、赋值运算、关系运算 D、关系运算、算术运算、赋值运算

23. 在C语言中,能代表逻辑值“真”的是(B)。 A、大于0的数

B、非0的数 C、非0整数 D、True

24. 表示关系x>0且y<=10的C语言表达式为( D). A、(x<=0)AND(y<=10) B、x>0,y<=10 C、(x<=0)&(y<=10) D、(x>0)&&(y<=10)

25. 下列运算符优先级最低的是(A ). A、= B、+ C、! D、&&

26. C语言中,逻辑\真\等价于( C)。 A、大于零的整数 B、大于零的数 C、非零的数 D、非零的整数

27. 根据下面的输出结果,正确的输出语句是:( D);

x=2.23000,y=4.35000

A、printf(\B、printf(\C、printf(\D、printf(\

28. 已知i、j、k为int型变量,若从键盘输入:1,2,3<回车>,使i的值为1、j

的值为2、k的值为3,以下选项中正确的输入语句是( C)。

A、scanf(\B、scanf(\C、scanf(\D、scanf(\29. 根据下面的程序,正确的输出形式是(A );

main() {

int i=5,j=10;

printf (\ printf (\}

30. 若变量已正确定义并赋值,下面符合C语言语法的表达式是(A)。

A、a=b=c+2 B、a:=b+1 C、int 18.5%3 D、a=a+7=c+B

31. 对于赋值语句char cx='\\037';判断正确的是:( D).

A、cx的值是四个字符 B、不合法,不能赋值 C、cx的值是三个字符 D、cx的值是一个字符

32. 设有说明:char w; int x; float y; double z; 则表达式w*x+z-y值的数据类型为( D ). A、char B、int C、float D、double

33. 先用语句定义字符型变量c,然后要将字符a赋给c,则下列语句中正确的是(B)。 A、C='97' B、c='a'; C、c=\D、c=\

34. 已定义ch为字符型变量,以下赋值语句中错误的是(A)。 A、ch='\\'; B、ch=NULL; C、ch='\\xaa'; D、ch=62+3;

35. 以下选项中合法的用户标识符是(D)。 A、long B、A.dat C、3Dmax D、_2Test

36. 下列正确的标识符是( C). A、a+b B、6a C、_do D、%y

37. 执行下列语句后变量x和y的值是(A)。

y=10;x=y++;

A、x=10,y=11 B、x=11,y=11 C、x=11,y=10 D、x=10,y=10

38. 假设所有变量均为整型,则表达式(a=2,b=5,b++,a+b)的值是(C)。 A、2 B、6 C、8 D、7

39. 若int a=2,则执行完表达式a-=a+=a*a后,a的值是(C )。 A、-4

B、-8 C、0 D、-2

40. 下列四组选项中,均不是C语言关键字的选项是(B)。 A、while go pow B、define IF type C、include scanf case D、getc char printf 41. 在一个C程序中(A)。 A、main函数可以在任何地方出现 B、main函数必须出现在固定位置 C、main函数必须出现在所有函数之前 D、main函数必须出现在所有函数之后

42. C语言中用于结构化程序设计的三种基本结构是(B)。 A、if、switch、break

B、顺序结构、选择结构、循环结构 C、if、for、continue D、for、while、do-while

43. C语言源程序文件经过C编译程序编译连接之后生成一个后缀为(A )A、.exe B、.bas C、.obj D、.c

44. C语言的程序一行写不下时,可以(C ).

A、用分号换行 B、用逗号换行 C、用反斜线换行

D、在任意标识符后用回车键换行

45. 对字符数组不正确的赋值方式是_C____ .

A、char c[ ]={\

B、char *string;string=\C、char c[10];c[10]={\D、char *string=\

46. 对auto存储类型的变量,若不赋值,则其值是( B). A、' \\0 ' B、随机的 C、系统自动赋值0 D、根据情况赋值

47. 构成C语言程序的基本单位是(C )。

A、子例程 B、子程序

的可执行文件 C、函数 D、过程

48. 用下面的scanf函数输入数据,使得i=12,j=202,不正确的键盘输入方法是(C ).

(用\表示回车,U表示空格) main() {int i,j;

scanf(\... }

A、12[CR]202 [CR] B、12202[CR] C、12,202[CR] D、12U202[CR]

49. 在位运算中,操作数每右移一位,其结果相当于(C)。 A、操作数乘以16 B、操作数除以16 C、操作数除以2 D、操作数乘以2

50. 执行下面程序段后,b的值为:_B___

int x=12; char z='A'; int b;

b=((x&&6)&&(z<'a'));

A、3 B、1 C、2 D、0

填空

1.C语言源程序的基本单位是_函数____.

2.表达式 a+=b 相当于表达式____a=a+b a=b+a。 3.int x=2;z=++x+1; 则z的值为___4__.

4.已知 i=5,写出语句 i*=i+1; 执行后整型变量 i 的值是_30____.

5.执行下列语句的结果是__4,4___,a=3;printf(\6.输入整型变量a的值. int a; scanf(\&a___); 7.设x=5>1+2,x的值 为__1___.

8.已知 a=10,b=15,c=1,d=2,e=0,则表达式a++&&e++&&c++的值为__0___.

9.以下do-while语句中循环体的执行次数是_3____. a=10; b=0; do { b+=2; a-=2+b; } while (a>=0);

10.执行语句char str[81]=\后,字符串str结束标志存储在str[___6__] (在括号内填写下标值)中.

11.字符串的结束标志是__\\0 '\\0' 0___.

12.求字符串长度的库函数是_strlen____,只写函数名即可.

13.函数调用时的实参和形参之间的数据是单向的_值____传递. 14.C语言中一个函数由函数首部和_函数体____两部分组成.

15.设 x 的值为15,n 的值为2,则表达式 x*=n+3 运算后 x 的值是_75____. 程序改错

1./***********ERROR***********/ /***********ERROR***********/

统计全班某门功课期末考试的平均分数和最高分数,设全班人数为30名。 #define N 30 main()

{int i,sum,score[N],high; float average; for(i=0;i

【参考答案】

scanf(\2. #include \

main() {

/**********ERROR**********/ int,student,a,b; char c;

double x=1.42;

/**********ERROR**********/ x=x%(-3); c='a';

student=30;

a+=a-=(b=4)*(a=3);

【参考答案】 int student,a,b;

3. #include \

main() {

int a,b,t; do {

scanf(\ }

/**********ERROR**********/ while(a>=0&&b>=0); if(a>=b)

/**********ERROR**********/ t=a;a=b;b=t;

printf(\

【参考答案】 while(a<=0||b<=0); 程序填空 1.

main() {

int i,j;

/***********FILL***********/ scanf(\ i++; j++;

printf(\}

【参考答案】 &i,&j &j,&I

2. OutputUresult:

a1='A',ASCIIUisU65

-------------------------------------------------------*/ #include \main() {

char a1='A';

/***********FILL***********/ _____

/***********FILL***********/ printf(_____,a1); }

【参考答案】

printf(\

3. #include \

main() {

int m,n,k,t;

scanf(\ /***********FILL***********/ if(_____) {

t=m;m=n;n=t; }

/***********FILL***********/ if(_____)

{

t=m;m=k;k=t; }

if(n

t=n;n=k;k=t; }

printf(\}

【参考答案】 mm

#include \

/***********FILL***********/ _____ main() {

static float x[M]={0.5,4.8,7.2}; int i; float a,s;

/***********FILL***********/ _____

for(i=0;i

printf(\}

【参考答案】 #defineUMU3

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

Top