99网
您的当前位置:首页C语言单选题

C语言单选题

来源:99网
1.下列说法正确的是

答案

main函数可以放在C程序的中间部分,但在执行C程序时是从main函数 开始的

main函数必须放在C程序的最前面

main函数必须放在C程序的最后面

main函数可以放在C程序的中间部分,但在执行C程序时从程序开头执 行的

2.C语言可执行文件程序文件的扩展名是()。

答案

ex e lib obj c

3.C语言目标程序文件的扩展名是()。

答案

obj ex e lib c

4.C语言可执行程序的开始执行点是()。

答案

包含文件中的第一个函 数

程序中的main函数

程序中第一个函数

程序中第一条可执行语 句

5.关于C程序,以下说法不正确的是()。

答案

每条语句和数据声明后面必须有分号

可以用/* */对C程序做注释

C程序中的注释语句也要被执行

C程序书写格式自由,一行内可以写多条语 句

6.C语言程序的三种基本结构是()。

答案

嵌套结构,递归结构,顺序结 构

顺序结构,选择结构,循环结 构

递归结构,循环结构,转移结 构

循环结构,转移结构,顺序结 构

7.C语言中提供的合法关键字是()。

答案

kase defaul t

swith cher

8.关于C程序,以下说法不正确的是()。

答案

C程序书写格式自由一条语句也可分多行书写

可以用/* */对C程序做注释

C程序书写格式自由,一行内可以写多条语句

每条语句后面必须有分号,变量声明后面不必加分 号

9.函数的值通过return语句返回,下面关于return语句的形式描述错误的是( )。

答案

return(表达式);

return表达式;

一个return语句只能返回一个函数 值

一个return语句可以返回多个函数 值

10.以下程序的输出结果是( )。 long fun( int n) { long s;

if(n==1‖n==2) s=2; else s=n-fun(n-1); return s;} main()

{ printf(\"%ld\\n\

答案

4 2 1 3

11.以下程序的正确运行结果是()。 void num() {int x,y;

int a=15,b=10; x=a-b;y=a+b;} int x,y; main()

{int a=7,b=5; x=a+b;y=a-b; num();

printf(\"%d,%d\\n\

答案

5,25 1,12 不确 定 12,2

12.若用以为数组名作函数实参,以下说法正确的是()。

答案

在被调函数中必须指明形参数组的大小

实参数组名与形参数组名必须相同

数组名作函数实参时,形参不可以是指针变 量

函数之间传递的是地址

13.有以下程序,执行程序时,给变量x输入10,程序的输出结果是( )int fun(int n)

{ if(n==1) return 1;

else return(n+fun(n-1));} main() { int x;

scanf(\"%d\%d\\n\

答案

5 4 5 5 4 5 6 5

14.void fun(int x) { if(x/2>1) fun(x/2);

printf(\"%d\main()

{ fun(7); } A) B)

答案

。 7 3 1 7 3 3 7

1 3 7

15.若用数组名作为函数调用的实参,传递给形参的是().

答案

数组元素的个数

数组中全部元素的 值

数组第一个元素的 值

数组的首地址

16.C语言中函数返回值的类型是由( )决定。

答案

主调函数的类型

return语句中的表达式类型

调用函数时临时指定

函数定义时所指定的函数类 型

17.两次执行下面的程序,分别从键盘上输入6和4,则输出结果是 main() { int x;

scanf(\"%d\if(x++>5)

printf(\"%d\else

printf(\"%d\}

答案

7 4 6 4

7 5 6 3

18.为了避免嵌套的条件语句if-else的二义性,C语言规定:与else配对的是

答案

if同一行上的if

其之后最近的if

缩排位置相同的if

其之前最近的未配对的 if

19.以下程序的输出结果是( )。 main()

{ int a=15, b=21, m=0; switch(a%3) {

case 0: m++;break; case 1: m++; switch(b%2) { default:m++;

case 0:m++;break; } } printf(\"%d\\n\ }

答案

3 4 2 1

20.执行下面语句后,y的值为(): int x,y,t; x=y=3;

t=++x||++y;

答案

10 分

1 不定 值 4 3

21.以下程序段中printf的输出结果是()。 int a=5,b=4,c=6,d;

printf(\"%d\\n\

答案

不确 定 4 5 6

22.下列程序段运行后x的值是()。 int a,b,c,x;

a=b=c=0; x=35; if(!a) x--; else if(b);

if(c) x=3; else x=4;

答案

3 3 4 3 5 4

23.能正确表示逻辑关系:\"a≥=10或a≤0\"的C语言表达式是()。

答案

a>=10 or a< =0

a>=10 && a< =0

a>=0|a< =10

a>=10 || a< =0

24.下列说法中正确的是()。

答案

在switch语句中一定要使用break语句

break语句是switch语句的一部分

break只能用于switch语句中

在switch语句中不一定要使用break语 句

25.以下叙述正确的是

答案

当输入一个实型数据时,格式控制部分可以规定小数点后的位数,例如: scanf(\"%5.1f\

输入项可以是一个实型常量,例如:scanf(\"%f\

当输入数据时,必须指明变量的地址,例如scanf(\"%f\

只有格式控制,没有输入项,也能正确输入数据到内存,例如: scanf(\"m=%d,n=%d\");

10 分

26.getchar函数的功能是()。

答案

接收从键盘输入的字符

接收从键盘输入的字符串

将从键盘输入的字符打印到屏幕上

将从键盘输入的字符串打印到屏幕 上

10 分

27.下面程序段中,printf函数的输出结果为:() int a=1234;

printf(\"%2d\\n\

答案

34

12

提示出错,无结 果 1234

28.已知k为double类型变量,则语句的输出结果是 k=260.72631;

printf(“%-6.2e\\n”,k);

答案

输出为26.07e+01

输出为2.61e+002

输出格式描述的域宽不够,不能输 出

输出为-2.e2

29.下列语句中不是合法的C语句的是()。

答案

a+b; t=z/100 ;

printf(\"C statement.\");

30.putchar函数的功能是()。

答案

接收从键盘输入的字符 串

将字符打印到屏幕上

接收从键盘输入的字符

将字符串打印到屏幕上

31.x、y、z被定义为int型变量,若从键盘给x、y、z输入数据,正确的输入语句是( )。

答案

scanf(\"%d%d%d\ ;

read(\"%d%d%d\

INPUT x、y、z;

scanf(\"%d%d%d\

32现有定义int a; double b; float c; char k;,则表达式a/b+c-k值的类型为( )。 答案

int float double char

33关于变量,正确的说法是()。 答案

变量定义时可以不指定类型,系统会为它指定

变量与符号常量用法相同

变量名是大小写区分的

变量可以不声明直接使用,也就是所谓的隐式声明

34若a=5,b=3,c=4,逻辑表达式!(a+b)&&!c的值为()

答案

1 2

-1 0

35下面四个选项中,合法的浮点数是()。

答案

5e-9.4 -8e5 123e e-5

36设有定义:int x=2 ;,以下表达式中值不为6的是( ) 答案

x++,2*x x*=x+1

x*=(1+x)

2*x, x+=2

37下列标识符中不合法的是()。 答案

3DS fox s_name _e

38表达式:(int)((double)9/2)-(9)%2的值是( ) 答案

5 3 0 4

39假设所有变量均为整型,则表达式(a=2,b=5,b++,a+b)的值是()。

答案

7 2 8 6

40已有定义char str1[15]=\"hello\";

若要用printf函数把数组str1所有元素的值输出,下面选项正确的是()。 答案

printf(\"%s\

printf(\"%s\

printf(\"%s\

printf(\"%s\

41有以下程序,程序运行后的输出结果是( )。 main()

{ char s[]={\"012xy\ int i, n=0;

for(i=0; s[i]!=0; i++) if (s[i]>='a' && s[i]<='z') n++;

printf(\"%d\\n\} 答案

0 3 5 2

42下面程序段的功能为求出数组a中所有元素的最大值,横线处需填写的内容是()。 int i,j,max;

int a[3][4]={{1,2,3,4},{9,8,7,6},{-10,10,-5,2}}; max=a[0][0]; for(i=0;i<=2;i++) for(j=0;j<=3;j++)

if(a[i][j]>max) __________ 答案

max=a[j][j];

max=a[j][i];

max=a[i][j];

max=a[i][i];

43对数组a有如下定义int a[ ]={0,1,2,3,4};则数组a的下标的上限是()。 答案

4 0 5 不确定

44执行下面程序段后,printf函数的输出结果为:() char s1[]=\"AbCdEf\printf(\"%d\\n\ 答案

负数 正数 出错 零

45有两个字符数组a,b,以下正确的输出语句是()。 答案

printf(\"%s%s\

puts(a);puts(b);

putchar(a,b);

puts(a,b);

46下列选项中错误的说明语句是( )。 答案

char a[]='toyou\\0';

char a[]=\"toyou\\0\";

char a[]={'t', 'o', 'y', 'o', 'u', '\\0'};

char a[]={\"toyou\\0\

47下列选项中,能正确定义数组的语句是( )。 答案

int N=2008; int num[N];

#define N 2008 int num[N];

int num[];

int num[0..2008];

保存并提交 1

1.

下面程序段的运行结果是( )。 char str[]=\"ABC\答案

字符\"C\"

字符\"C\"的地址 0 67

10 分

问题 2

1.

下面程序的输出结果是( )。 main()

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

printf(\"%d\\n\} 答案

0 10

9 1

10 分

3

1.

以下程序(字母A的ASCII码值为65), 程序运行后的输出结果是( )。 main()

{ char *s={\"ABC\do {

printf(\"%d\} while(*s);} 答案

ABC 567 656667 5670

10 分

问题 4

1.

下面程序段的运行结果是 char *s=\"abcd\"; s+=1; printf(\"%c\答案

b d

c a

10 分

5

1.

下列程序的运行结果为( )。 void abc(char*str) { int a,b;

for(a=b=0;str[a]!='\\0'; a++) if(str[a]!='c') str[b++]=str[a]; str[b]='\\0'; }

void main()

{ char str[]=\"abcdef\"; abc(str);

printf(\"str[]=%s\} 答案

str[]=a

str[]=abcdef

str[]=abdef str[]=ab

10 分

问题 6

1.

以下正确的程序段是( )。

答案

char str[20],*p=str; scanf(\"%s\

char *p; scanf(\"%s\

char str[20]; scanf(\"%s\

char str[20]; scanf(\"%s\

10 分

7

1.

下面程序段的运行结果是( )。 char *s=\"abcde\"; s+=2; printf(\"%d\答案

字符\"c\"

无确定的输出结果

字符\"c\"的地址 cde

10 分

问题 8

1.

下面程序段的运行结果是 char *s=\"abcd\"; printf(\"%c\答案

d a c

b

10 分

9

1.

以下程序中调用scanf函数给变量a输入数值的方法是错误的,其错误原因是( )。 main() { int *p,*q,a,b; p=&a;

printf(\"input a:\"); scanf(\"%d\} 答案

*p表示的是变量a的值,而不是变量a的地址

*p只能用来说明p是一个指针变量

*p表示的是指针变量p的值

*p表示的是指针变量p的地址

10 分

问题 10

1.

下列函数的功能是( )。 fun(char*a,char*b) {

while((*b=*a)!='\\0') {a++; b++;} } 答案

使指针b指向a所指字符串

将a所指字符串赋给b所指空间

将a所指字符串和b所指字符串进行比较

检查a和b所指字符串中是否有'\\0'

C语言课堂练习题

58以下正确的描述是:

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

59在c语言程序中,当do while语句构成的循环中的条件为()时候,结束循环。 A. true B. 1 C. 非0 D. 0

60.T为int类型,进入下面的循环之前,t的值为0,有如下程序片段:while(t=1){……}以下叙述中正确的是() A.以上说法均不正确 B.循环控制表达式的值为1 C.循环控制表达式的值为0

D.循环控制表达式不合法

61下面程序段的输出结果是()。 Main() {int n=9;

While(n>6){n-;printf(“%d”,n);} } A.876 B.987 C,8765 D.9876

62intf,n;一下能正确计算f=n!的程序段是()A,f=1;

For(i=n;i>1;i++) F*=i; B. ,f=1;

For(i=1;iC. ,f=0;

For(i1n;i<=n;i++) F*=i; D, ,f=1;

For(i=n;i>=1;i-) F*=i;

因篇幅问题不能全部显示,请点此查看更多更全内容