文档库 最新最全的文档下载
当前位置:文档库 › C语言复习题

C语言复习题

C语言复习题
C语言复习题

判断题

1.函数若无返回值,则它一定无形参。×

2.在C 程序中, 函数既可以嵌套定义, 也可以嵌套调用。×

3.C程序总是从main( ) 函数的第一条语句开始执行的。√

4.同一函数内可以有多个return语句。√

5.main函数中的变量名不可以与其它函数相同。×

6.C程序可由多个函数组成,但必须有并且只有一个主函数main。√

7.在C语言中的每个函数必须要有一个明确的return语句才能返回调用程序。×

8.主函数中定义的变量的作用域仅限于主函数内。√

9.传值调用的形参只有在被调用时,才被创建(分配存储单元)。√

10.C程序执行总是从第一个函数开始。×

11.一个C程序的执行总是从该程序的main函数开始,在main函数最后结束。×

12.被main函数调用的函数只能是库函数。×

13.函数说明指的是在程序中设定一个函数模块。×

14.在C程序中,若对函数类型未加说明,则函数的隐含类型为void。×

15.形参可以是常量、变量或表达式。×

16.函数调用可以作为一个函数的形参。×

17.C语言规定,实参应与其对应的形参类型一致。√

18.定义函数时,形参的类型说明可以放在函数体内。×

19.一个函数可以带回一个整型值、字符值、实型值等,也可以带回指针型的数据。√

20.全局变量可以被任何一个函数中的任何一个表达式使用。×因为局部变量和全局变量重

名的时候全局变量就不能使用了

21.函数的隐含存储类型是extern。√

22.定义在main函数后的任何函数都需在main中进行函数声明。×

23.a是一维数组名,数组元素a[1]还可以写作“*(a++)”。×

24.C语言中数组名是指针常量。√

25.构成数组的各个元素必须具有相同的类型。√

26.数组元素的下标可以选用正整数或正实数。×

27.数组名可以作为参数进行传递。√

28.若有定义“int a[4][5];”,则在数组元素a[3][3]前有12个元素。×

29.若有定义int a[3][4];则共有12个元素,最后一个元素是a[3][4]。×

30.字符数组中字符串可以整体输入输出。√

31.若有定义语句“char s1[ ]="abc",s2[ ]={'a','b','c'};”,则数组s1和数组s2均有3个元

素。×

32.若a为一维数组名,则*(a+i)与a[i]等价。√

33.函数原型为“void sort(float a[],int n)”,调用该函数时,形参数组a被创建,实参数组各

元素的值被复制到a数组各元素中。×

34.C允许对数组的大小作动态定义,即可用变量定义数组的大小。×

35.数组定义int a[10]; 也可以写成int a(10); 。×

36.在对全部数组元素赋初值时,可以不指定数组长度。√

37.定义s为5×6(5行6列)的数组可写成float a[5,6]; ×

38.数组定义int a[10]; 表示数组名为a,此数组有10个元素,第10个元素为a[10]。×

39.static char c[]={'a' ,' ','b','o','o','k','\0'};与static char c[]={'a' ,' ' ,'b','o','o','k'}; 等价。×

40.设已有说明:static char c1[10],c2[10]; 下面程序片段是合法的。c1={“book”}; c2=c1; ×

41.调用函数时,实参为数组名,则向数组传递的是数组的首地址。√

42.puts()函数的作用是接收从键盘输入的字符串。×

43.两个字符串所包含的字符个数相同时,才能进行字符串的比较。×

44.若有说明:int a[][3]={1,2,3,4,5,6,7};则数组a第一维大小是3。√

45.在C语言中,数组下标从1开始。×

46.若有说明:int a[ ][4]={{0},{0}};则二维数组a的第一维大小为1。×

47.在C语言中,数组名是一个不可改变的地址常量,不能对它进行赋值运算。√

48.若有说明:int a[3][4]={0},则只有元素a[0][0]可得到初值0。×

49.字符串作为一维数组存放在内存中。√

50.若有形参定义:int a[10];则a++是合法的表达式。×

51.定义数组可以采取以下形式: int a[5]; a[1]=1;a[2]=3;a[3]=6;a[4]=7;a[5]=9; ×

52.设char x[]=”1234”,y[]={…1?,?2?,?3?,?4?,?\0?};那么x数组的长度等于y数组的长度。√

53.…a?和“a”在内存中所占字节相同。×

54.C语言的编译系统对宏命令的处理是在C源程序编译阶段完成的。×

55.预处理命令如:#include 不属于c语言的一部分。×

56.若有宏定义:#define M(x,y,z) x*y+z 则宏引用M(2+3,4+5,6+7)

通过宏展开后的表达式应为(2+3)*(4+5)+(6+7)。×

57.C语言中的宏定义允许嵌套定义,也允许带参数。√

58.宏替换时先求出实参表达式的值,然后代入形参运算求值。×

59.使用带参数的宏时,参数的类型应与宏定义时的一致。×

60.若有宏定义:#define PI 3.14i5926,则系统预编译时会报错。√

61.已知宏定义#define SQ(x) x*x,执行语句printf(“10/SQ(3)=%d",10/SQ(3));后的输出结

果是10/3*3=1。×

62.形参为指针变量时,实参必须是数组名。×

63.若有定义:int a[5],*p;,使p指向最后一个数组元素a[4]的语句是p=a+4;。√

64.已有定义:int a[5]={1,2,3,4,5},*s=a;,则表达式*(s+3)的值是3。×

65.若有定义:int a[5]={10,20,30,40,50},*p=a,*s=a+2;,表达式s-p的值是2。√

66.在int *p;和语句printf(“%d”, *p);中的*p含义相同。×

67.设有说明int(*ptr)(int);,则ptr是一个函数名。×

68.位运算赋值有6个,但位运算组成复合的赋值运算符只有5个。√

69.说明:char s[]=“world”,*p;,执行语句p=s后,*(p+5)的值是?d?。(*(p+4)的值是?d?)×

70.结构体类型中各成员项的数据类型可以不同。√

71.在程序中定义了一个结构体类型,将为此类型分配存储空间。×

72.在说明一个结构体变量时系统分配给它的存储空间是该结构体中所有成员所需存储空

间的总和。√

73.若打开文件的方式为“w”而该文件已经存在,则文件中原有数据被清空。√

74.若用fopen( )函数打开一个已存在的文本文件,保留该文件原有数据且可以读也可以写,

则文件的打开模式是“r+”。√

75.C文件使用前需要打开,使用后需要关闭。√

76.对文件进行操作的一般步骤包括:打开/建立要操作的文件;对文件进行读写等操作;

关闭被操作的文件。√

77.若fp已正确定义并指向某文件,当未遇到该文件结束标志时函数feof(fp)的值为1(为

非零值)。×

78.文件由二进制数据序列组成,C语言只能读写二进制文件。×

79.feof函数只能对二进制文件进行判定。×

80.利用fclose函数关闭已打开的文件。√

选择题

1.下列叙述中,正确的叙述项是(B)。

A.定义函数时,必须要有形参

B.函数中可以没有return语句,也可以有多条return语句

C.函数f可以用f(f(x))形式调用,这种调用形式是递归调用

D.函数必须有返回值

2.下列叙述中,不正确的叙述项是(D)。

A.函数调用时,形参变量只有在被调用时才被创建(分配存储单元)

错误!未指定书签。B.函数调用时,实参可以是常量、变量或表达式

C.定义变量时,省略对变量的存储类别定义,则变量是自动型变量

D.语句return(a,b);则函数可以返回两个值

3.传值调用的特点是(B)。

A.实参传给形参变量的数据是地址

B.在函数中形参变量值改变后,不改变实参变量的值

C.在函数中形参变量值改变后,实参变量的值随之也改变

D.实参必须是变量

4.如果在函数中定义一个变量,有关该变量作用域正确的是(A)。

A.只在该函数中有效B.在该文件中有效

C.在本程序中有效D.为非法变量

5.根据下面函数print的定义,选出调用函数print(5378)的值是(A)。

void print(long n)

{ if (n==0) return ;

else{

print(n/10);

printf("% d", n%10);

return ; }

}

A.5 3 7 8 B.8 7 3 5

C.3 5 7 8 D.8 7 5 3

6.根据下面函数f,选出f(f(3))的值是(C)。

int f(int x)

{ static int k=0;

x=x+k;

k--;

return x;

}

A.5 B.3 C.2 D.4

7.以下说法中正确的是(C)。

A.C程序总是从第一个函数开始执行

B.C程序中,函数最多不能超过2个

C.C程序总是从main()函数开始执行

D.C程序的main()函数必须放在程序的最前面

8.以下函数调用语句中实参的个数为(D)。

aver((v1,v2),(v3,v4,v5),v6);

A.6 B.5 C.4 D.3

9.下列程序的输出结果是(D)。

fun(int a, int b, int c)

{ c =a*b; }

main( )

{ int c;

fun(2,3,c);

printf("%d\n",c);

}

A.0 B.1 C.6 D.无法确定

10.执行下列程序后的输出结果是(A)。

#include

char f(char s[],int n)

{ return (s[n]); }

main()

{ char a[]="ABCD";

printf("%c",f(a,2)+1);

}

A.D B.C C.B D.A

11.对于以下递归函数f( ),调用f(4),其返回值为(A)。

int f(int n)

{ if(n) return f(n-1)+n;

else return n;

}

A. 10

B. 4

C. 0

D.以上均不是

12.下列能正确定义一维数组a的语句是(D)。

A.int a(10); B.int n=10,a[n];

C.int n;scanf("%d",&n);D.#define n 10

int a[n];int a[n];

13.若有定义语句“int a[10];”则下列对a中数组元素正确引用的是(A)。

A.a[10/2–5] B.a[10] C.a[4.5] D.a(1)14.能对一维数组正确初始化的语句是(A)。

A.int a[6]={6*1} B.int a[6]={1,,,3}

C.int a[6]={} D.int a[6]=(0,0,0)

15.以下能正确定义二维数组的语句为(D)。

A.int a[][];B.int a[][4];C.int a[3][];D.int a[3][4];

16.若有数组定义语句“int a[4][5];”,则对a中数组元素的正确引用是(D)。

A.a[4][1] B.a[2,1] C.a[4][5] D.a[4–1][5–5]

17.下列各语句定义数组,其中不正确的是(C)。

A.char a[3][10]={"China","American","Asia"}; B.int x[2][2]={1,2};

C.float x[2][]={1,2,4,6,8,10}; D.int m[][3]={1,2,3,4,5,6}; 18.数组定义为int a[3][2]= {1,2,3,4,5,6},下列表述中正确的是(D)。

A.a[3][2]的值为6 B.a[6]的值为6

C.a[0]的值为1 D.a[2][1] 的值为6

19.以下能对二维数组a进行正确初始化的语句为(D)。

A.int a[2][]={{1},{4,5}};B.int a[2][3]={1,2,3,4,5,6,7};

C.int a[][]={1,2,3,4,5,6};D.int a[][3]={1,2,3,4,5};20.下列对字符数组s的初始化不正确的是(C)。

A.char s[5]="abc";B.char s[5]={'a','b','c','d','e'};

C.char s[5]="abcde";D.char s[]="abcde";

21.下列程序段的运行结果为(B)。

char s[]="ab\0cd"; printf("%s",s);

A.ab0 B.ab C.Abcd D.ab cd

22.下列数组s中所存放字符串的长度为(C)。

char s[]="a\128b\\\tcd\xdg\n";

A.9 B.10 C.11 D.18

23.有数组定义语句“char a[20];”,则正确的输入语句为(D)。

A.scanf("%s",&a);B.scanf("%s",a[]);

C.gets(a[20]);D.gets(a);

24.若有int a[10]={1,2,3,4,5,6,7,8,9,10};

则数值为6的表达式是(C)。

A.a[0] B.a[6] C.a[0]+5 D.a[1]+5

25.下面程序执行后的正确输出项是(A)。

#include

void swap1(int a[ ])

{ int t;

t=a[0]; a[0]=a[1]; a[1]=t;

}

void swap2(int a,int b)

{ int t;

t=a; a=b; b=t;

}

void main()

{ int x[2]={1,5};

int y[2]={1,5};

swap1(x);

swap2(y[0],y[1]);

printf("x: %d %d\n", x[0],x[1]);

printf("y: %d %d\n", y[0],y[1]);

}

A. x:5 1

B. x:1 5

C. x:1 5

D. x:5 1

y:1 5 y:5 1 y:1 5 y:5 1 26.有以下程序

main()

{char a[7]="a0\0a0\0";int i,j;

i=sizeof(a);j=strlen(a);

printf("%d%d\n",i,j);

}

程序运行后的输出结果是(C)

A.22B.76C.72D.6 2 27.执行下列程序后的输出结果是(D)。

#include

int f(int a[],int n)

{ if(n==0) return a[0];

else return f(a,n-1)+a[n];

}

main()

{ int x[]={1,3,5,7,9};

printf("%d\n",f(x,3));

}

A.1 B.4 C.9 D.16

28.下面对数组定义正确的是(D)。

A.int a[ ]; B.int n=5,a[n]; C.int n, a[n]={1,2,3,4,5}; D.int a[10/2];

29.设有语句"int a[]={1,2,3,9,8,7};",则表达式"a[2]-a[4]"的值是(C)。

A.-2 B.-4 C.-5 D.-7

30.数组定义为int a[11][11],则数组a 有(D)个数组元素。

A.12 B.144 C.100 D.121

31.以下能正确定义二维数组的是(B)。

A. int a[][3];

B. int a[][3]={{2},{2*3}};

C. int a[][3]={};

D. int a[2][3]={{1},{2},{3,4}};

32.若有以下说明和语句,则输出结果是(B)。

char sp[]="\t\v\\\0will\n";

printf("%d",strlen(sp));

A. 14

B. 3

C. 9

D. 字符串中有非法字符

33.若有以下说明和语句,则输出结果是(C)。

char str[]="\"c:\\abc.dat\""; printf("%s",str);

A. 字符串中有非法字符

B. \"c:\\abc.dat\"

C. "c:\abc.dat"

D. "c:\\abc.dat"

34.设有定义语句char s[4]="abc";,则表达式s[3]的值是(B)。

A. 未知字符

B. 0

C. '0'

D. 'c'

35.设变量定义为char format[ ]=“s=%d\n”; ,则数组format元素的个数为(C)。

A.4

B.5

C.6

D.7

36.函数调用"strcmp("123","321")的返回值是(D)。

A. 0

B. 1

C. 任意正整数

D. 负整数

37.下列宏定义命令中,哪一个格式是正确的(D)。

A.#define pi=3.14159;B.define pi=3.14159

C.#define pi="3.14159" D.#define pi (3.14159)

38.宏定义为“#define div(x,y) x/y;”,若语句“printf("div(x,y)=%d\n",div(x+3,y-3));”

作宏替换后为(C)。

A.printf("x/y=%d\n",(x+3)/(y-3));B.printf("x/y=%d\n",x+3/y-3);

C.printf("div(x,y)=%d\n",x+3/y-3;);D.printf("x/y=%d\n",x+3/y-3;);

39.程序中调用了库函数exit,必须包含头文件(B)。

A.string.h B.stdlib.h C.ctype.h D.math.h

40.已知宏定义

#define N 3

#define Y(n) ((N+1)*n)

执行语句z=2*(N+Y(5+1));后,变量z的值是( B )。

A.42 B.48 C.52 D.出错41.下列程序段的输出结果是(D)。

#define M(x, y) x / y

printf("%d", M(10,2+3));

A.2 B.2.0 C.5 D.8

42.执行下列程序段后变量i的值应为(B)。

#define MA(x,y) (x*y)

i=5;

i=MA(i,i+1)-7;

A. 30 B .19 C. 23 D. 1

43.下面程序的运行结果是(B)。

#define PS 3+4

#include

void main( )

{ int z;

z=PS*2;

printf("%d",z);

}

A.14 B.11 C.2 D.24

44.对于以下变量定义,(D)是正确的赋值。

int *p[3],a[3];

A. p=a

B.*p=a[0]

C.p=&a[0]

D.p[0]=&a[0]

45.下列语句定义p为指向float型变量d的指针,其中正确的是(C)。

A.float d,*p=d;B.float *p=&d,d;

C.float d,*p=&d;D.float d,p=d;

46.指针变量p1、p2类型相同,要使p2、p1指向同一变量,哪一个语句是正确的(A)。

A.p2=*&p1;B.p2=**p1;C.p2=&p1;D.p2=*p1;

47.若有“float a=1.5,b=3.5,*pa=&a;*pa*=3;pa=&b;”,则正确的是(C)。

A.pa的值是1.5 B.*pa的值是4.5

C.*pa的值是3.5 D.pa的值是3.5

48.数组定义为“int a[4][5];”,下列哪一个引用是错误的(D)。

A.*a B.*(*(a+2)+3) C.&a[2][3] D.++a

49.表达式“c=*p++”的执行过程是(A)。

A.复制*p的值给c后再执行p++ B.复制*p的值给c后再执行(*p)++

C.复制p的值给c后再执行p++ D.执行p++后将*p的值复制给c

50.若已定义int x,*p;则以下正确的赋值表达式是(A)。

A.p=&x B.p=x C.*p=&x D.*p=*x

51.下面程序输出结果是(B)。

#include

void main()

{ int x=4,y=7,*px=&x,*py=&y;

*py=*px;

printf(“%d,%d”,x,y);

}

A.7,7 B.4,4 C.4,7 D.7,4

52.声明语句为“char s[4][15],*p1,**p2;int x,*y;”,下列语句中正确的是(D)。

A.p2=s;B.y=*s;C.*p2=s;D.y=&x;

53.定义函数int *max()的正确含义是(B)。

A.返回整型值的函数

B.返回指向整型变量的指针

C.返回指向函数max()的指针

D.上面的叙述都不正确。

54.若有定义“int(*ptr)(float);”,其正确的含义是(C)。

A.ptr是指向一维数组的指针变量

B.ptr是指向int型数据的指针变量

C.ptr是指向函数的指针变量,该函数有一个float型参数,返回值是整型

D.ptr是一个函数名,该函数的返回值是指向int型数据的指针

55.指出正确的程序是(程序(2))。

程序(1) 程序(2)

#include #include

void main() void main()

{ {

char *p; char s[80]; double x,y, *p;

p=s[0]; x=3.45; p=&x; y=*p;

scanf("%s",s); printf("%f\n",y);

printf("%s\n",p);

} }

程序(3) 程序(4)

#include #include

void main() void main()

{ {

int x,*p; int *p=&a;

*p=x; int a;

printf("%d\n",*p); printf("%d\n",*p);

} }

56.下面程序的输出结果是(B)。

void main()

{

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

for(i=0;i<4;i++)

p[i]=a+i*3; // 或p[i]=&a[i*3];

printf("%d", *(p[3]+2)); // 或printf("%d", p[3][2]);

}

A.8 B.12 C.6 D.程序有错

57.变量的指针,其含义是指该变量的(B)。

A.值B.地址C.名D.一个标志

58.设变量定义为“int x, *p=&x;”,则&*p相当于(A)。

A.p B.*p C.x D.*&x

59.若变量已正确定义,(A)不能使指针p成为空指针。

A.p=EOF B.p=0 C.p=?\0? D.p=NULL

60.对于类型相同的指针变量,不能进行(A)运算。

A.+ B.- C.= D.= =

61.设有指针变量p已指向float型变量x,正确的输入语句是(C)。

A.scanf("%f",x); B.scanf("%d",&x); C.scanf("%f",p); D.scanf("%f",*p);

62.执行下列程序段,输出结果( D )。

int m=5,n=25,*q1,*q2=&n,;

q1=&m;

q2=q1;

printf("%d %d", *q1,*q2);

A.&m &m; B.25 25 C.25 5 D.5 5

63.下面程序执行后输出是( B )。

#include

void main()

{ int k=4,*p1=&k;

if (*p1==k) printf("%d",1);

else printf("%d",0);

}

A.4 B.1 C.0 D.运行时出错

64.设有定义语句short x=12;假定分配给x的内存地址是0xff00和0xff01,则在程序中能表

示变量x地址的表达式是(A)。

A.&x B.&12 C.ff00 D.ff01

65.设有定义语句int a,*pa=&a;和赋值语句*pa=a;,则下列说法正确的是(A)。

A.定义语句中的“*pa=&a”表示将a的地址赋给pa

B.定义语句中的“*pa=&a”表示将a的值赋给pa

C.赋值语句中的“*pa=a”表示将a的地址赋给pa

D.赋值语句中的“*pa=a”表示将a的值赋给pa

66.已有定义int k=2,*p1=&k,*p2=&k;下面不能正确执行的赋值语句是(B)。

A.k=*p1+*p2; B.p2=k; C.p1=p2; D.k=*p1*(*p2);

67.若有语句int *p,a=4;和p=&a;下面均代表地址的一组选项是(D)。

A.a,p,*&a B.&*a,&a,*p C.*&p,*p,&a D.&a,&*p,p

68.若有定义:int *p,m=5,n;以下正确的程序段是(D)。

A.p=&n;scanf("%d",&p); B.p=&n;scanf("%d",*p);

C.scanf("%d",&n);*p=n; D.p=&n;*p=m;

69.指出函数abc的作用是( D )。

void abc(char * s , char * t)

{ while( *t++ ) ;

t-- ;

while ( *t++ = *s++ ) ;// 注:是单等号

}

A.求字符串长度B.将字符串t 复制到字符串s 中

C.比较字符串大小D.将字符串s 连接到字符串t 的尾部

70.若有定义:int *p1,*p2,m=5,n;以下均是正确赋值语句的选项是(C)。

A.p1=&m;p2=&p1; B.p1=&m;*p1=*p2;

C.p1=&m;p2=p1; D.p1=&m;*p2=*p1;

71.声明语句为“int a[3][4];”,下列表达式中与数组元素a[2][1]等价的是(A)。

A.*(a[2]+1) B.a[9] C.*(a[1]+2) D.*(*(a+2))+1

72.已有变量定义和函数调用语句:int a=25;print_value(&a);下面函数的正确输出结果是

(D)。

void print_value(int *x)

{ printf("%d\n",++*x); }

A.32 B.24 C.25 D.26

73.下面程序的输出是(B)

#inc lude “stdio.h”

void fun(int *a,int b)

{*a=13; b*=5;

return;}

void main()

{int x=12,y=12;

fun(&x,y);

printf(“x=%d,y=%d\n”,x,y); }

A.x=12,y=12 B.x=13,y=12 C.x=13,y=60 D.x=12,y=60

74.int a[] = {1,2,3}, *p, *q;

p = a+1;

q = p++;

执行该程序段后,p和q所指向的单元的内容分别为(C)。

A.(*p) = 1, (*q) = 2 B.(*p) = 2, (*q) = 3

C.(*p) = 3, (*q) = 2 D.以上都错

75.和定义语句char *a="ccw";功能完全相同的程序段是(C)。

A.char *a,a="ccw"; B.char *a;*a="ccw"; C.char *a;a="ccw"; D.char *a,*a="ccw";

76.下列程序段的输出结果是(D)。

int t, a[3] = {10, 5, 1};

int *p;

for(p = a; p < a+3; p++)

t = t + *p;

printf("%d", t);

A.15 B.16

C.10 D.不确定

77.设有定义语句int x[]={1,2,3},*p=x;则结果不是地址值的表达式是(C)。

A.p+1 B.x C.*p D.&x[0]

78.执行下列程序段后,变量y的值为(D)。

int x[]={1,2,3,4},y,*p=&x[1];

y=(*--p)++;

A.4 B.3 C.2 D.1

79.设有定义语句int a[]={1,2,3,4,5,6,7,8,9,10},*p=a;则结果为8的表达式是(D)。

A.p+7 B.*p+8 C.*(p+8) D.*p+=7

80.设变量定义为:int *p[3], a[3];,(C )是正确的赋值。

81.A.p = &a[0] B.*p = **a

82.C.p[0] = a D.**p = a

83.执行下列程序段后,m的值为(D)。

int a[2][3]={{1,2,3},{4,5,6}};

int m,*p;

p=&a[0][0];

m=(*p)*(*(p+2))*(*(p+4));

A.12 B.13 C.14 D.15

84.运行下列程序的输出结果是(C)。

#include

main()

{ int i;

char a[20]="123456",*p;

for(p=&a[5];p>=a;p--)

printf("%c",*p);

}

A.135 B.246 C.654321 D.123456 85.运行下列程序的输出结果是(A)。

#include

main()

{ char *p="13542";

while(*p!='4')

printf("%c",*(p++)+1);

}

A.246 B.135 C.152 D.13542 86.不正确的赋值或赋初值的方式是(D)。

A.char str[6]={…s?,?t?,?r?,?i?,?n?,?g?};

B.char str[10]=”string”;

C.char *str=”string”;

D.char str[10];str=”string”;

87.如下程序段,其输出应为(B)。

int c[]={1, 7, 12};

int *k;

k=c;

printf("%d",*++k);

A.2 B.7 C.1 D.以上均不对

88.调用f("1234")的返回结果是(B)。

int f(char *s)

{ int k = 0;

while (*s) k = k*10+*s++-'0';

return(k);

}

A."1234" B.1234 C."4321" D.4321 89.以下程序运行后的输出结果是(B)。

main()

{ char s[]="Yes\n/No",*ps=s;

printf(“%s”,ps+4);

*(ps+4)=0;

puts(s);

}

A.n/No /No B./NoYes C.n/NO Yes D.Yes Yes Yes /No

90.设有定义:char str[]=“ABCD”,*p=str;则语句printf(“%d\n”,*(p+4));的输出结果

是(B)。

A.68 B.0 C.字符d的地址D.不确定的值

91.下面程序执行后a的值是(B)。

#include"stdio.h"

void main( )

{ int a,k=4,m=6,*p1=&k,*p2=&m;

a=p1!=&m;

printf("%d\n",a);

}

A.4 B.1 C.0 D.运行时出错,a无定值

92.语句:printf(printf("%d\n",strlen("ATS\n012\1\\")));的输出结果是(C)。

A)11 B)10 C)9 D)8

93.以下程序段输出字符串str,其中循环条件str[i] != '\0' 还可以写成(A)。

char str[80];

for(i = 0; str[i] != '\0'; i++)

putchar(str[i]);

A.str[i] != NULL B.i < 80

C.!(str[i] = '\0') D.i <= 80

94.设变量定义为:int n, *p; char ch, *q, *g;,则语句(D)是不正确的。

A.p = &n; g = q = &ch; B.p = &n; q = &ch;

C.p = &n; g = &ch; D.p = &n; q = &ch; g = p;

95.下列数据定义语句中,正确的是(B)。

A.char c[2],*p=c[1]; B.char c,*p=&c; C.float *p=&a,a=5; D.float b1,p=&b1;

96.设有char str[100];int i=5;则引用数组元素的错误形式是(A)。

A.*((str++)+i) B.*(str+i-1) C.*(str+i) D.str[i+10] 97.设有定义语句int a[3][4],*p=a[0];则下列表达式中,不能代表合法数组元素的是(D)。

A.**a B.*(a[2]+1) C.*(p+2*4+1) D.*(*(p+2)+1) 98.下列程序段的输出结果是(B)。

char *st[ ]={"SUN", "MOON", "STAR", "X"};

printf("(%s, %c)", *(st+1)+1, *(*(st+2)+2)+2);

A.(MOON,M) B.(OON,C) C.(OON,Q) D.(OON, A)

99.已有定义:int i,a[10],*p;,则合法的赋值语句是(D)。

A.p=100; B.p=a[5]; C.p=a[2]+2; D.p=a+2;

100.以下程序运行后的输出结果是(D)。

main()

{ char s[]="ABCD",*p;

for(p=s+1;p

}

A.ABCD B.A C.B D.BCD BCD B C CD

CD C D D

101.有定义:char *p[10];,则p是一个(D)。

A.函数名B.指针变量C.数组元素D.数组名

102.s12和s2已正确定义并分别指向两个字符串。若要求:当s1所指串大于s2所指串时,执行语句S;则以下选项中正确的是(D)。

A.if(s1>s2)S; B.if(strcmp(s1,s2))S;

C.if(strcmp(s2,s1)>0)S; D.if(strcmp(s1,s2)>0)S;

103.设有定义语句

int x[6]={2,4,6,8,5,7},*p=x,i;

要求依次输出x数组6个元素中的值,不能完成此操作的语句是(D)。

A.for(i=0;i<6;i++) printf("%2d",*(p++));

B.for(i=0;i<6;i++) printf("%2d",*(p+i));

C.for(i=0;i<6;i++) printf("%2d",*p++);

D.for(i=0;i<6;i++) printf("%2d",(*p)++);

104.有以下的结构变量定义语句:

struct student { int num; char name[9]; } stu;

则下列叙述中错误的是(B)。

A.结构类型名为student B.结构类型名为stu

C.num是结构成员名D.struct是C的关键字105.设变量定义如下,则对其中的结构分量num正确的引用是(A)。

struct student {

int num;

char name[20];

float score;

} stud[10];

A.stud[1].num = 10; B.student.stud.num = 10;

C.struct.stud.num = 10; D.struct student.num = 10; 106.对于以下的变量定义,语句(B)在语法和语义上都是正确的。

struct node {

float x, y;

char s[10];

} point = {1, 2, "abc"}, *p;

A.*p = point; B.p = &point;

C.point = p; D.p->x = point.y;

107.设变量定义如下,则表达式(D)是正确的。

struct student {

int num;

char name[20];

float score;

} stud[10];

A.stud[2]=stud[1]+3 B.stud[1]==stud[2]

C.stud[1]=stud[1]-stud[2] D.stud[1]=stud[2]

108.有以下的定义语句:

struct student { int num; char name[9]; };

则不能正确定义结构数组并赋初始值的是(C)。

A.struct student stu[2]={1,"zhangsan",2,"li si"};

B.struct student stu[2]={{1,"zhangsan"},{2,"li si"}};

C.struct stu[2]={{1,"zhangsan"},{2,"li si"}};

D.struct student stu[ ]={{1,"zhangsan"},{2,"li si"}};

109.若有以下定义语句:

struct date { int y,m,d; };

struct student

{ int num; char name[9]; struct date bir;}stu,*p=&stu;

则以下对结构变量stu成员的引用错误的是(A)。

A.p–>bir–>y B.p–>bir.y C.stu.bir.y D.https://www.wendangku.net/doc/6511836350.html, 110.若结构体定义如下,则下面正确的项是(C)

struct time

{ int hour,minute,second;

} t;

A.time.hour=5; B.t={15,26,7};

C.struct time b={15,26,7}; D.struct time a.second=7;

111.若结构体定义如下:则下面正确的项是(D)。

struct complex

{ float real;

float image;

};

A.complex.real=5.9 B.complex v2.real=5.9

C.struct v2; v2.real=6.5 D.struct complex v2={6.4,6.2};

112.若有以下定义语句:

struct student { int num; char name[9];

}stu[2]={1, "zhangsan",2, "lisi"};

则以下能输出字符串“lisi”的语句是(D)。

A.printf("%s",stu[0].name); B.printf("%s",&stu[1].name);

C.printf("%s",stu[1].name[0]); D.printf("%s",&stu[1].name[0]);

113.以下程序的输出结果是(B)。

#include

void main()

{ int x=1,y=2,z=3;

struct aa { int a; int *p; } s[ ]={4,&x,5,&y,6,&z};

struct aa *q=s+1;

printf("%d\n",*(q–>p)++);

}

A.1 B.2 C.3 D.4

114.若有定义:struct person{char name[9];int age;};

struct person class[3]={“john”,17,”Mary”,19,”Paul”,21};

能输出学生Pual名字的语句是(B)。

A.printf(“%s”,class[2].name[0]); B.printf(“%s”,class[2].name);

C.printf(“%s”,class[3].name); D.printf(“%s”,class[3].name[0]);

115.对于以下结构定义:

struct { int len;

char *str;

} *p;

则*p->str++中的++加在(A)。

A.指针str上B.指针p上C.str所指的内容上D.以上均不是116.若有定义:struct person { char name[9]; int age; };

struct person class[3]={"john",17,"paul",19,"Mary",18};

能输出字母M的语句是(D)。

A.printf("%c",class[1].name); B.printf("%c",class[2].name[1]);

C.printf("%c",class); D.printf("%c",class[2].name[0]);

117.对于以下的变量定义,表达式(B)不符合C语言语法。

struct node {

int len;

char *pk;

} x = {2, "right"}, *p = &x;

A.p->pk B.*p.pk C.*p->pk D.*x.pk

118.对于以下的变量定义,表达式(D)是不正确的。

struct node {

int j, k;

} x, *p=&x;

A.p->k=2 B.(*p).k=2 C.x.k=2 D.x->k=2

119.若a是整型变量,表达式~(a ^ ~a ) 等价于(C)。

A.~a B.1 C.0 D.2

120.对于int a,要使((1<<2>>1)|a)==a; 则a 可以是(D)。

A.2 B.6 C.10 D.2,6,10均可121.设int a1=7, a2=1, xx; 进行如下操作xx = ( a1<< 1 )&~( a2<<2 )后xx 的值为(C)。

A.0 B.1 C.10 D.以上都错

122.执行语句“a=3; printf("%d\n",a&3);”后的输出结果为(C)。

A.1 B.0 C.3 D.11

123.下面(C)语句是从文件中读取一个字符。

A.ch=getc(); B.fputc(ch,fp); C.fscanf(fp,"%c",&ch); D.scanf("%c",&ch); 124.以只读方式打开一个二进制文件,应选择的文件使用方式是(A)。

A."rb" B."wb" C."a+" D."w+"

125.不能正确打开文件时,打开文件函数fopen的返回值是(A)。

A.NULL B.EOF C.非0 D.1

126.如果文本文件a.txt已经存在,现要求写入全新的数据,应以(B)方式打开。

A.“wb” B.”w” C.”r+” D.”rb+”

127.定义FILE *fp;则文件指针fp指向的是(D)。

A.文件在磁盘上的读写位置

B.文件在缓冲区上的读写位置

C.整个磁盘文件

D.文件类型结构

128.以“只读”方式打开文本文件c:\xy.txt,下列语句中哪一个是正确的(B)。

A.fp=fopen("c:\\xy.txt","a"); B.fp=fopen("c:\\xy.txt","r");

C.fp=fopen("c:\\xy.txt","wb"); D.fp=fopen("c:\xy.txt","r");

129.设有下列数据定义语句:char s[]="ccc.txt",*p=s;要打开名为"ccc.txt"的文件,下列给出的打开文件函数的第一个实际参数写法中,错误的是(B)。

A.p B.*p C.s D."ccc.txt"

130.关于关闭文件函数,下列说法中正确的是(D)。

A.关闭文件函数没有返回值

B.关闭文件函数的函数名是fclosefile

C.如果在程序中打开了某个文件,程序结束前没有关闭这个文件,则会出现语法错误D.关闭文件函数的参数是指向已经打开的文件的文件型指针变量名

阅读程序题

1.#include "stdio.h"

void main( )

{ int j, k, n = 3, temp, sum = 0;

int a[6][6];

for(k = 0; k < n; k++)

for(j = 0; j < n; j++)

a[k][j] = k * n + j;

for(k = 0; k < n; k++)

sum = sum + a[k][k];

printf("%d\n", sum);

for(k = 0; k < n; k++)

sum = sum + a[k][n-k-1];

printf("%d\n", sum);

}

程序运行时,第1行输出(1) B,第2行输出(2) B。

(1) A.15 B.12 C.3 D.0

(2) A.30 B.24 C.15 D.12 2.#include

int f(int number, int digit)

{ int count = 0;

while(number != 0){

if(number%10 == digit) count++;

number = number / 10;

}

return count;

}

void main( ){

printf("count=%d\n", f(10090, 0));

printf("count=%d\n", f(10090, 9));

}

程序运行时,第1行输出(1) C,第2行输出(2) C。

(1) A.count=0 B.count=1 C.count=3 D.count=5

(2) A.count=3 B.count=9 C.count=1 D.count=5

3.#include

main()

{ int a[4][4]={{1,2,3,4},{5,6,7,8},{11,12,13,14},{15,16,17,18}};

int i=0,j=0,s=0;

while(i++<4)

{ if(i==2||i==4) continue;

j=0;

do{ s+= a[i][j]; j++; } while(j<4);

}

printf("%d\n",s);

}

程序运行结果:92

4.#include

main()

{ int p[7]={11,13,14,15,16,17,18};

int i=0,j=0;

while(i<7 && p[i]%2==1) j+=p[i++];

printf("%d\n",j);

}

程序运行结果:24

5.#include

void f(int *x,int *y)

{ int t;

t=*x;*x=*y;*y=t;

}

#include

main()

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

p=a;q=&a[7];

while(p

{ f(p,q);

p++;

q--;

}

for(i=0;i<8;i++)

printf("%2d",a[i]);

}

程序运行结果:8 7 6 5 4 3 2 1

6.#include

void main()

{ int x[5],i,j,s;

for(i = 4;i>=0;i--)

x[i] = i;

j = 1;

s = 0;

for(i=0;i<5;i++)

{ s = s + x[i]* j;

j = j * 10;

printf ("(%d,%d)",s,j);

}

}

程序运行结果:(0,10)(10,100)(210,1000)(3210,10000)(43210,100000) 7.#include

void main()

{ int x[4]={17,15,-21,9},i,d=0,c=11;

for(i=0;i<4;i++){

if ( x[i]>c ){

d=d+x[i];

c=x[i];

}

else d=d-c;

printf("%d#",d);

}

}

程序运行结果:17#0#-17#-34#

8.#include

void main()

{ int a[4]={1,5,7,4},i,j,k,m;

for(i=0;i<3;i++)

{ k=a[3];

for(j=2;j>=0;j--)

a[j+1]=a[j];

a[0]=k;

for(m=0;m<4;m++)

printf("%2d",a[m]);

putchar('\n');

}

}

程序运行结果:4 1 5 7

7 4 1 5

5 7 4 1

9.#include

void main ( )

{

int x [ ][4] = { 1, 2 ,3 , 4 ,2 , 3 , 4 , 5 , 3 , 4 , 5 , 6};

int i,j, sum ;

for(sum=0,i=0; i<3 ; i++){

for (j = 0; j<4 ;j ++ )

if ( i-j ) sum += x [ i ] [ j ] ;

printf ("sum=%-5d " , sum ) ;

}

}

sum=9 sum=20 sum=33

10.#include"stdio.h"

void main()

{ int x[10];

int t,i,j,m=1;

for(i=0;i<10;i++)

{ m=-m;

x[i]=m*i;

}

for(i=1;i<10;i++)

{ t=x[i];

for(j=i-1; j>=0; j--)

if(t>x[j]) break;

else x[j+1]=x[j];

x[j+1]=t;

}

for(i=0;i<10;i++) printf("%3d",x[i]);

}

程序运行结果:-8 -6 -4 -2 0 1 3 5 7 9

11.#include

void main()

{ int i, k,m;

int a[8]={15,60,75,73,92,87,64,79}, s[10];

for(k=0; k<10; k++) s[k]=0;

for(i=0; i<8; i++){

k=a[i]/10; s[k]++;

}

m=s[0]; k=1;

while (k<10){

if(s[k]!=0) printf("%d#", s[k]);

if (s[k]>m) m=s[k];

k++;

}

printf("%d", m);

}

程序运行结果:1#2#3#1#1#3

12.#include

void main()

{ int j, k;

int a[3]={3, 4, 5};

for(j=0; j<3; j++){

for(k=0; k<3; k++) printf("%d ",a[(j+k)%3]);

printf("#");

}

}

程序运行结果:3 4 5 #4 5 3 #5 3 4 #

13.#include

void main( )

{ int i=0, n;

char s[10]= "298h01";

n=0;

for(i=0; s[i]!= '\0'; i++)

if(s[i]<= '9'&&s[i]>= '0') n=n*10+(s[i]- '0');

else break;

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

}

程序运行结果:298

14.#define N 5

#include

{ int a[N],j;

void fun(int a[],int n);

for(j=0;j

fun(a,N);

for(j=0;j

printf(“%5d”,a[j]);

}

void fun(int a[],int n)

{ int i,k;

for(k=0;k

for(i=0;i

a[i]+=a[k]+1;

return;

}

程序运行结果:121 122 125 134 161

15.#include

int f(int k)

{ int i,j,number,a[10],s=0;

int m;

for(i=1;i<=9;i++)

{ for(j=0;j

a[j]=i;

number=0;

for(j=0;j

number=10*number+a[j];

s+=number;

}

return s;

}

void main()

{

printf("%d\n",f(2));

}

程序运行结果:495

16.#include

void main()

{ float a[4][3]={{3,2,5},{-3,2,1},{4,3,2},{5,1,3}};

int i,j;

float v;

for(i=0;i<4;i++) {

v=a[i][0];

for(j=1;j<3;j++)

v+=a[i][j];

(完整版)C语言试题及答案解析

C语言 一、选择题(第题2分,共20分) 1.一个C程序的执行是从 A 。 A) 本程序的main函数开始,到main函数结束 B) 本程序文件的第一个函数开始,到本程序文件的最后一个函数结束 C) 本程序文件的第一个函数开始,到本程序main函数结束 D) 本程序的main函数开始,到本程序文件的最后一个函数结束 2.若x、i、j、k都是int型变量,则计算下面表达式后,x的值为 C 。 x=(i=4,j=16,k=32) A) 4 B) 16 C) 32 D) 52 3.设C语言中,一个int型数据在内存中占2个字节,则unsigned int 型数据的取值范围为 C 。 A) 0~255 B) 0~32767 C) 0~65535 D) 0~2147483647 4.设有说明:char w; int x; float y; double z;则表达式w*x+z-y值的数据类型为 D 。 A) float B) char C) int D) double 5. putchar函数可以向终端输出一个 D 。 A) 整型变量表达式 B) 实型变量值 C) 字符串 D) 字符或字符型变量值 6. printf函数中用到格式符%5s,其中数字5表示输出的字符串占用5列。如果字符串长度大于5,则输出按方式 B ;如果字符串长度小于5,则输出按方式 C 。 A) 从左起输出该字符串,右补空格 B) 按原字符长从左向右全部输出 C) 右对齐输出该字符串,左补空格 D) 输出错误信息 7.判断char型变量ch是否为大写字母的正确表达式是 C 。 A) ‘A’<=ch<=‘Z’ B) (ch>=‘A’)&(ch<=‘Z’) C) (ch>=‘A’)&&(ch<=‘Z’) D) (‘A’<= ch)AND(‘Z’>= ch) 8.已知int x=10,y=20,z=30;以下语句执行后x,y,z的值是 B 。 if(x>y) z=x; x=y; y=z; A) x=10, y=20, z=30 B) x=20, y=30, z=30 C) x=20, y=30, z=10 D) x=20, y=30, z=20 9.以下程序段______C__. x=-1; do{ x=x*x; } while(!x); A)是死循环 B)循环执行二次 C)循环执行一次 D)有语法错误 10.以下正确的描述是___B____. A)continue语句的作用是结束整个循环的执行

c语言试题及答案

1、以下正确的说法是( B ) (A) 用户若需要调用标准库函数,调用前必须重新定义 (B) 用户可以重新定义标准库函数,若如此,该函数将失去原有含义 (C) 系统根本不允许用户重新定义标准库函数 (D) 用户若需调用标准库函数,调用前不必使用预编译命令将该函数所在文件包括到用户源文件中,系统自动去调 2、以下正确的函数声明形式是( A ) (A) double fun(int x, int y) (B) double fun(int x; int y) (C) double fun(int x, int y); (D) double fun(int x,y); 3、以下正确的函数形式是( D ) (A) double fun(int x, int y) { z=x+y; return z;} (B) fun(int x,y) { int z; return z;} (C) fun(x,y) { int x,y; double z; z=x+y; return z;} (D) double fun(int x, int y) { double z; z=x+y; return z;} 4、以下正确的说法是( A ) 在C语言中 (A) 实参和与其对应的形参各占用独立的存储单元 (B) 实参和与其对应的形参共占用一个存储单元 (C) 只有当实参和与其对应的形参同名时才共占用存储单元 (D) 形参是虚拟的,不占用存储单元 5、若调用一个函数,且此函数中没有return语句,则正确的说法是( A ) 该函数 (A) 没有返回值 (B) 返回若干个系统默认值 (C) 能返回一个用户所希望的函数值 (D) 返回一个不确定的值 6、以下不正确的说法是( B ) C语言规定 (A) 实参可以是常量、变量和表达式 (B) 形参可以是常量、变量和表达式 (C) 实参可以为任意类型 (D) 形参应与其对应的实参类型一致 7、以下正确的说法是( C ) (A) 定义函数时,形参的类型说明可以放在函数体内 (B) return后边的值不能为表达式 (C) 如果函数值的类型与返回值类型不一致,以函数值类型为准 (D) 如果形参与实参的类型不一致,以实参类型为准 8、C语言规定,简单变量做实参时,它和对应形参之间的数据传递方式是( B ) (A) 地址传递 (B) 单向值传递 (C) 由实参传给形参,再由形参传回给实参 (D) 由用户指定传递方式

C语言选择题题库

C语言程序设计题库说明 一本题库适用对象 计算机应用技术计算机软件软件技术计算机网络技术与计算机控制技术等专业 二本题库包含有175道选择题 三本题库所有题目均附有答案

一、选择题 下列各题ABCD四个选项中,只有一个选项是正确的,请将正确选项涂在答题卡的相应位置上,答在试卷上不得分。 1、不合法的整数是()。 A)0x35 B)43.6 C)0532 D)-346 2、下列合法的字符常量是()。 A)“f” B)x C)65 D)‘\Xab’ 3、设有整型变量x,单精度变量y=,表达式x=float(y*3+((int)y%4))执行后,x的值为()。 A)17 B)17.500000 C) D) 4、在C语言中,负整数在内存中以()形式释放。 A)补码 B)BCD码 C)反码 D)十进制数 5、在C语言中,要求参加运算的数必须是整数的运算符是()。 A)/ B)!C)% D)= = 6、()是C语言中非法的数据类型关键字。 A)float B)singed C)integer D)Char

7、现已定义整形变量int i=1;执行循环语句while(i++<5);后i的值为()。 A)1 B)5 C)6 D)以上三个答案都不正确 8、下列语句的输出结果是()。 printf(“%f\n”,(float)(2+4)/2); A)有语法错误不能通过编译 B)3 C)D) 9、C语言中,整数-8在内存中的存储形式是()。 A)1111,1111,1111,1000 B)1000,0000,0000,1000 C)0000,0000,0000,1000 D)1111,1111,1111,0111 10、设C语言中,int类型数据占2个字节,则long类型数据占()个字节。 A)1 B)2 C)8 D)4 11、若变量a已说明为float类型,则能实现将a中的数值保留小数点后两位,第三位进行四舍五入运算的表达式是()。 A)a=(a*100+/ B)a=(a*100+/100 C)a=(int)(a*100+/ D)a=(a/100+*

C语言题库

C语言基本概念 能将高级语言编写的源程序转换成目标程序的是______。 A) 编辑程序B) 编译程序C) 解释程序D) 链接程序 您的答案为:B 参考答案为:B 以下选项中合法的用户标识符是______。 A) long B) _2Test C) 3Dmax D) A.dat 您的答案为:B 参考答案为:B 以下叙述正确的是 A) 可以把define和if定义为用户标识符 B) 可以把define定义为用户标识符,但不能把if定义为用户标识符 C) 可以把if定义为用户标识符,但不能把define定义为用户标识符 D) define和if都不能定义为用户标识符 您的答案为:D 参考答案为:B 以下叙述正确的是 A) C语言比其他语言高级 B) C语言可以不用编译就能被计算机识别执行 C) C语言以接近英语国家的自然语言和数学语言作为语言的表达形式 D) C语言出现的最晚、具有其他语言的一切优点 您的答案为:C 参考答案为:C 在一个C语言程序中 A) main函数必须出现在所有函数之前 B) main函数必须出现在所有函数之后 C) main函数可以在任何地方出现 D) main函数必须出现在固定位置 您的答案为:C 参考答案为:C 一个C语言程序是由_______组成的。 A) 一个主程序和若干子程序 B) 若干子程序 C) 函数 D) 若干过程您的答案为:C 参考答案为:C 以下叙述中正确的是() A) C语言的源程序不必通过编译就可以直接运行 B) C语言中的每条可执行语句最终都将被转换成二进制的机器指令 C) C源程序经编译形成的二进制代码可以直接运行 D) C语言中的函数不可以单独进行编译 您的答案为:B 参考答案为:B 下列关于C语言用户标识符的叙述中正确的是

c语言试题及答案

《C语言》课程综合复习资料 一、单选题 1. 在C语言中,字符型数据在存中的存储形式是 A)原码 B)补码 C)反码 D)ASCII码 2. 在C语言中,十进制数47可等价地表示为 A) 2f B) 02f C) 57 D) 057 3. 设有定义:int x=12,n=5; 则表达式 x%=(n%2) 的值为 A) 0 B) 1 C) 2 D) 3 4. 设有定义语句:char str[][20]={,"Beijing","中国石油大学"},*p=str; 则printf("%d\n",strlen(p+20)); 输出结果是 A)10 B) 6 C) 0 D) 20 5. 已定义以下函数: fun(int *p) { return *p; } 该函数的返回值是 A)不确定的值 B)形参p所指存储单元中的值 C)形参p中存放的值 D)形参p的地址值 6. C语言中,函数返回值的类型是由 A)return语句中的表达式类型决定 B)调用函数的主调函数类型决定 C)调用函数时的临时类型决定 D)定义函数时所指定的函数类型决定 7. 有以下函数定义: void fun( int n , double x ) { …… } 若以下选项中的变量都已正确定义并赋值,则对函数fun的正确调用语句是 A) fun( int y , double m ); B) k=fun( 10 , 12.5 ); C) fun( 10 , 12.5 ); D) void fun( 10 , 12.5 ); 8. 以下选项中不能正确赋值的是 A) char b[]={′H′,′e′,′l′,′l′,′o′,′!′}; B) char b[10];b="Hello!";

C语言题库_选择题(1)

本卷共有4道大 一、单项选择题(25道小题,共50分) 1、以下说法中正确的是(C)(2分) A、C语言程序总是从第一个的函数开始执行 B、在C语言程序中,要调用的函数必须在main()函数中定义 C、C语言程序总是从main()函数开始执行 D、C语言程序中的main()函数必须放在程序的开始部分 2、一个算法应该具有“确定性”等五个特性,下面对另外4个特性的描述中错误的是(B)(2分) A、有零个或多个输入 B、有零个或多个输出 C、有穷性 D、可行性 3、以下选项中,不合法常量的是(B)(2分) A、1.234e04 B、1.234e0.4 C、1.234e+4 D、1.234e0 4、C语言中最简单的数据类型包括(B)(2分) A、整型、实型、逻辑型 B、整型、实型、字符型 C、整型、字符型、逻辑型 D、整型、实型、逻辑型、字符型 5、能正确表示逻辑关系:“10≥=a≥=0”的C语言表达式是(D)(2分) A、10>=a>=0 B、a>=0 and a<=10 C、a>=0||a<=10 D、a>=0&&a<=10 6、设a和b均为double型变量,且a=5.5、b=2.5,则表达式(int)a+b/b的值是(D)(2分)A、6.500000B、6 C、5.500000 D、6.000000

7、x、y、z被定义为int型变量,若从键盘给x、y、z输入数据,正确的输入语句是(B)(2分) A、INPUT x、y、z; B、scanf("%d%d%d",&x,&y,&z); C、scanf("%d%d%d",x,y,z); D、read("%d%d%d",&x,&y,&z); 8、设x和y均为int型变量,则以下语句:x+=y;y=x-y;x-=y;的功能是(D)(2分)A、把x和y按从大到小排列B、把x和y按从小到大排列 C、无确定结果 D、交换x和y中的值 9、若有以下程序段:int c1=1,c2=2,c3;c3=1.0/c2*c1;则执行后,c3中的值是(A)(2分)A、0B、0.5 C、1 D、2 10、设char ch='A';则ch=(ch>='A'&&ch<='Z')?(ch+32):ch的值是(B)。(2分) A、A B、a C、Z D、z 11、执行程序段int a=-1,b=4,k;k=(++a<0)&&!(b-- <=0);printf(“%d %d %d\n”,k,a,b);后的输出结果是(D )。 (2分) A、1 0 4 B、1 0 3 C、0 0 3 D、0 0 4 12、设intx=1, y=1;表达式(!x||y--)的值是(B)。(2分) A、0B、1 C、2 D、-1 13、程序段intx=3;do{printf(“%d”,x-=2);}while(!(--x));的输出结果是(C)。(2分) A、1 B、30 C、1-2 D、死循环

2020C语言考试题库及答案

精选考试类应用文档,如果您需要使用本文档,请点击下载,另外祝您生活愉快,工作顺利,万事如意! 精选考试类文档,如果需要,请下载,希望能帮助到你们! 2020C语言考试题库及答案

姓名成绩 温馨提示:同学们,经过培训学习,你一定积累了很多知识,现在请认真、仔细地完成这张试题吧。加油! 一单项选择题 1. 在C语言中,以 D 作为字符串结束标志 A)’\n’ B)’ ’ C) ’0’ D)’\0’ 2.下列数据中属于“字符串常量”的是( A )。 A.“a” B.{ABC} C.‘abc\0’ D.‘a’ 若干个字符构成字符串 在C语言中,用单引号标识字符;用双引号标识字符串 选项B,C,分别用{}和’’标识字符串 选项D,标识字符。 3、以下说法中正确的是( C )。 A、C语言程序总是从第一个定义的函数开始执行 B、在C语言程序中,要调用的函数必须在main( )函数中定义

C、C语言程序总是从main( )函数开始执行 D、C语言程序中的main( )函数必须放在程序的开始部分 4.下列关于C语言的说法错误的是( B )。 A) C程序的工作过程是编辑、编译、连接、运行 B) C语言不区分大小写。 C) C程序的三种基本结构是顺序、选择、循环 D) C程序从main函数开始执行 5.下列正确的标识符是(C )。 A.-a1 B.a[i] C.a2_i D.int t 6.下列C语言用户标识符中合法的是( B )。 A)3ax B)x C)case D)-e2 E)union 7.下列四组选项中,正确的C语言标识符是( C )。 A) %x B) a+b C) a123 D) 123 8、下列四组字符串中都可以用作C语言程序中的标识符的是( A )。 A、print _3d db8 aBc B、I\am one_half start$it 3pai C、str_1 Cpp pow while D、Pxq My->book line# His.age 9.C语言中的简单数据类型包括(D )。 A、整型、实型、逻辑型 B、整型、实型、逻辑型、字符型 C、整型、字符型、逻辑型 D、整型、实型、字符型 10.在C语言程序中,表达式5%2的结果是 C 。

C语言试题库(完整版)

C语言试题库 一、单项选择 第一章 C语言概述 (1)一个C程序的执行是从 A、本程序的MAIN函数开始,到MAIN 函数结束。 B、本程序文件的第一个函数开始,到本程序文件的最后一个函数结束。 C、本程序的MAIN函数开始,到本程序的最后一个函数结束。 D、本程序文件的第一个函数开始,到本程序的MAIN函数结束。(2)以下叙述正确的是 A、在C程序中,MAIN函数必须位于程序的最前面。 B、 C程序的每行中只能写一条语句。 C、 C语言本身没有输入输出语句。 D、在对一个C程序进行编译的过程中,可发现注释中的拼写错误。(3) C语言规定,在一个源程序中,MAIN主函数的位置是在: A、必须在最前面。 B、必须在系统调用的库函数的后面 C、可以在任意位置。

D、必须在最后面 (4)一个C程序是由: A、一个主程序和若干子程序组成 B、函数组成 C、若干过程组成 D、若干子程序组成 (5)以下叙述不正确的是: A、一个C源程序可由一个或多个函数组成 B、一个C源程序必须包含一个MAIN函数 C、 C程序的基本组成单位是函数 D、在C程序中,注释说明只能位于一条语句的后面 第二章数据类型、运算符与表达式 (1)若x, i, j, k都是int型变量,则计算下面表达式后,x的值为x=( i=4, j=16, k=32) A、4 B、16 C、32

D、52 (2)下列四组选项中,均不是C语言键字的选项是 A、define , IF, type B、getc, char, printf C、include, scanf, case E、 if, struct, type (3)下面四个选项中,均是不合法的用户标识符的选项是A、A,P_0,do B、float,1a0, _A C、b-a, goto, int D、_123, temp, INT (4)若有代数式3ae/bc,则正确的C语言表达式是A、a/b/c*e*3 B、3*a*e/bc C、3*a*e/b*c D、a*e/c/b*3 (5)已知各变量的类型说明如下:

C语言程序设计期末考试选择题题库

第一章1、一个C程序可能出现的错误有(A)A,以上都包括 B,逻辑错误 C,运行错误 D,语法错误 2、C程序中一般可以包含几个函数(D) A.1个 B.多个 C.0个 D.至少一个 3.C语言属于程序设计语言的哪个类别(B) A.机器语言 B.高级语言 C.面向对象语言 D.汇编语言 4.以下关于C语言描述错误的是(B) A.一个C程序总是从main函数开始执行 B.一个C程序可以包含多个main函数 C.每个语句的最后必须有一个分号 D.C语言的注释符是以"/*"开始并以"*/"结束

5、在调试过程中,逻辑错误是指(C) A.所书写的语句,不符合C的语法。 B.在从obj生成exe文件的过程中,如果函数名书写错误,可能产生的错误。 C.程序的运行结果不符合题目要求。 D.在exe文件的执行过程中,产生运行异常。 第二章 1、16位的二进制数可以表示的整数的范围是(C) A.[-32768,32768] B.[-32767,32768] C.[-32768,32767] D.[-32767,32767] 2、C语言中的实型数据包括(A) A.float和double B.int和float C.float和char D.int和double 3、以下不合法的字符常量是(C) A.'2' B.'A' C.'ab'

4、在以下各组标识符中,均是合法的C语言标识符是(A) A.abc,A_4d,_student,xyz_abc B.auto,12-a,a_b,ab5.x C.A_4d,_student,xyz_abc,if D.abc,a_b,union,scan 5、若有定义:chara;intb;floatc;doubled; 则表达式a*b+d-c值的类型为(A) A.char B.float C.double D.int 6、类型修饰符unsigned不能修饰(D) A.char B.longint C.int D.float 7、若有定义:doublex=1,y; 执行语句,则y的值是(B) A,1 B,2.0

c语言试题及答案 ()

第1章 C语言概述习题 1. 单项选择题 (1) C 语言是在 B 语言的基础上产生的。 A. 回车符 B. 冒号 C. 逗号 D. 分号 (2) 在 C 语言中,每个语句必须以 D 结束。 A. 回车符 B. 冒号 C. 逗号 D. 分号 (3) 标识符和关键字间,要用 C 隔开。 A. 回车符 B. 冒号 C. 空格 D. 分号 (4) 用 C 语言编写的源文件经过编译,若没有产生编译错误,则系统将( B )。 A. 生成可执行目标文件 B. 生成目标文件 C. 输出运行结果 D.自动保存源文件 (5) 下列说法中正确的是( B )。 A. 由于 C 源程序是高级语言程序,因此一定要在 TC 软件中输入 B. 由 C 源程序是字符流组成,因此可以作为文本文件在任何文本编辑的软件中输入 C. 由于C 程序是高级语言程序,因此输入后即可执行 D. 由于 C 程序是高级语言程序,因此它由命令组成 (6) 下列说法中正确的是( A )。 A. C 语言程序由主函数和 0 个或多个函数组成 B. C 语言程序由

主程序和子程序组成 C. C 语言程序由子程序组成 D. C 语言程序由过程组成 (7) 下列说法中错误的是( D )。 A. 主函数可以分为两个部分:主函数说明部分和主函数体 B. 主函数可以调用任何非主函数的其他函数 C. 任何非主函数可以调用其他任何非主函数 D. 程序可以从任何非主函数开始执行 2. 填空题 (1) C 语言只有 37 个关键字和 9 种控制语句。 (2) C 语言是一种“中级语言”,既具有高级语言的特点又具有低级语言的特点;既适合于开发系统软件又适合于编写应用程序。 (3) 每个源程序有且只有一个主函数,系统总是从该函数开始执行C语言程序。 (4) 在 C 语言程序中允许出现的字符集是 ASCII码字符集。 (5) C 语言的程序中有特殊含义的英语单词称为保留字。 (6) C 语言标识符的长度是前 8 位有效。 (7) C 语言中,标识符的定义规则是以字母或下划线为开头。 (8) C 语言程序的注释可以出现在程序中的任何地方,它总是以 /* 符号作为开始标记,以 */ 符号作为结束标记。

C语言试题与答案

大学C语言考试题库 第1章 C语言概述习题 1. 单项选择题 (1) C 语言是在 B 语言的基础上产生的。 A. A B. B C. D D. E (2) 在 C 语言中,每个语句必须以 D 结束。 A. 回车符 B. 冒号 C. 逗号 D. 分号 (3) 标识符和关键字间,要用 C 隔开。 A. 回车符 B. 冒号 C. 空格 D. 分号 (4) 用 C 语言编写的源文件经过编译,若没有产生编译错误,则系统将( B )。 A. 生成可执行目标文件 B. 生成目标文件 C. 输出运行结果 D.自动保存源文件 (5) 下列说法中正确的是( B )。 A. 由于 C 源程序是高级语言程序,因此一定要在 TC 软件中输入 B. 由 C 源程序是字符流组成,因此可以作为文本文件在任何文本编辑的软件中输入 C. 由于C 程序是高级语言程序,因此输入后即可执行 D. 由于 C 程序是高级语言程序,因此它由命令组成 (6) 下列说法中正确的是( A )。 A. C 语言程序由主函数和 0 个或多个函数组成 B. C 语言程序由主程序和子程序组成 C. C 语言程序由子程序组成 D. C 语言程序由过程组成 (7) 下列说法中错误的是( D )。 A. 主函数可以分为两个部分:主函数说明部分和主函数体 B. 主函数可以调用任何非主函数的其他函数 C. 任何非主函数可以调用其他任何非主函数 D. 程序可以从任何非主函数开始执行 2. 填空题 (1) C 语言只有 32 个关键字和 9 种控制语句。 (2) C 语言是一种“中级语言”,既具有高级语言的特点又具有低级语言的特点;既适合于开发系

C语言试题及答案

一、单项选择题 1. 软件危机具有下列表现( d )。 I. 对软件开发成本估计不准确II. 软件产品的质量往往靠不住 III. 软件常常不可维护IV. 软件成本逐年上升 A. I、II和III B. I、III和IV C. II、III和IV D. 以上都正确 2. 软件生命周期一般都被划分为若干个独立的阶段,其中占用精力和费用最多的阶段往往是( A )。 A. 运行和维护阶段 B. 设计阶段 C. 代码实现阶段 D. 测试阶段 3. 下列属于软件的特点的是(D )。 A. 软件是一种逻辑实体,具有抽象性 ~ B. 软件在使用过程中没有磨损、老化的问题 C. 软件不同于一般程序,它的一个显著特点是规模庞大,复杂程度高 D. 以上都正确 4. 软件工程的出现是由于(D )。 A. 软件危机的出现 B. 计算机硬件技术的发展 C. 软件社会化的需要 D. 计算机软件技术的发展 5. 软件开发技术不包含( d )。 A. 软件开发方法学 B. 软件工程环境 C. 软件工具 D. 软件质量度度量 6. 软件工程的课程特点( D )。 【 I. 学科理论及其知识应用的多维性 II. 工程化 III. 浓厚的方法学色彩 IV. 实践性、指导性强 A. I、II和III B. I、III和IV C. II、III和IV D. 以上都正确 7. 下列属于应用软件的是( b )。 I. 计算机辅助教学软件II. 软件测试工具 III. 办公自动化软件IV. 工程与科学计算软件

A. I、II和III B. I、III和IV C. II、III和IV D. 以上都正确 8. 需求分析阶段最重要的技术文档是( b )。 - A. 设计说明书 B. 需求规格说明书 C. 可行性分析报告 D. 用户手册 9. 以下关于数据流图的说法错误的是( c )。 A. 数据流图舍去了具体的物质,只剩下数据的流动、加工处理和存储 B. 数据流图是用作结构化分析的一种工具 C. 传统的数据流图中主要由加工、数据源点/终点、数据流、控制流、数据存储组成 D. 数据流图的绘制采用自上向下、逐层分解的方法 10. 数据字典是软件需求分析阶段的最重要工具之一,其最基本的功能是( c )。 A. 数据库设计 B. 数据通信 C. 数据定义 D. 数据维护 11. 需求分析阶段的研究对象是( b )。 ¥ A. 系统分析员要求 B. 用户要求 C. 软硬件要求 D. 系统要求 12. 结构化方法的基本原则是( b )。 A. 模块化 B. 抽象与分解 C. 信息隐蔽 D. 逐步求精 13. 耦合度最高的是(b)耦合。 A. 环境 B. 内容 C. 控制 D. 数据 14. 内聚程度较低的是( a )内聚。 A. 偶然 B. 通讯 C. 顺序 D. 时间 15. 对一个程序来说,组成系统的模块数目( b ),则开发成本越小。 A. 越多 B. 越少 C. 顺序 D. 时间> 16. 画软件结构图时应注意调用关系只能是(B )。 A. 从下到上 B. 从上到下 C. 从左到右 D. 从右到左 17. 程序流程图中的箭头代表( b )。 A. 数据流 B. 控制流 C. 顺序流 D. 调用 18. 软件测试是软件质量保证的重要手段,下述( B )是软件测试的最基础环节。

C语言单项选择题

单项选择题(本大题共20小题,每小题1分,共20分) 1.C++源程序文件扩展名为(A) A..cpp B..h C..1ib D..obj 5.对使用关键字new所开辟的动态存储空间,释放时必须使用(C)A.free B.create C.delete D.realse 6.从本质上看,引用是被引用变量的(B) A.拷贝 B.别名 C.复制 D.克隆 7.在函数调用时,如某一默认参数要指明一个特定值,则有(B) A.其之前所有参数都必须赋值B.其之后所有参数都必须赋值 C.其前、后所有参数都必须赋值D.其前、后所有参数都不必赋值 8.设存在函数int max(int,int)返回两参数中较大值,若求22,59,70三者中最大值,下列表达式不正确的是(C) A.int m=max(22,max(59,70));B.int m=max(max(22,59),70); C.int m=max(22,59,70);D.int m=max(59,max(22,70)); 9.设存在函数int min(int,int)返回两参数中较小值,若求15,26,47三者中最小值,下列表达式中错误的是(B) A.int m=min(min(15,26),min(15,47)); B.int m=min(15,26,47); C.int m=min(15,min(47,26)); D.int m=min(min(47,26),16); 13.函数int&min(int&,int&)返回参数中较小者,设有两整型变量int a=10;int b=15; 在执行语句min(a,b)--;之后,a,b值分别为(B) A.9,14 B.9,15 C.10,14 D.10,15 16.设函数void swap(int&,int&)将交换两形参的值,如两整型变量int a=10;int b=15;则执行swap(a,b)后,a、b值分别为(C) A.10,10 B.10,15 C.15,10 D.15,15

C语言题库

一、判断题(每题1分) 1.函数即可以嵌套定义,又可以嵌套调用.( × ) 2.unsigned 和void 在C 中都是保留字.( √ ) 3.表达式 ++i 表示对变量i 自加1. (√ ) 4.C 语言源程序的基本结构单位是main 函数. ( × ) 5.字符常量的长度肯定为1. (√ ) 6.char a[]={'a','b','c'};char b[]={"abc"};数组a和数组b 占用的内存空间大小不一样. ( √ ) 7.若有int i=10,,j=2; 则执行完i*=j+8;后i 的值为28. (× ) 8.int i,*p=&i;是正确的C 说明。( √ ) 9.While 循环语句的循环体至少执行一次. ( × ) 10.有数组定义int a[2][2]={{1},{2,3}};则a[0][1]的值为0. ( √ ) 11. 7&3+12的值是15.( × ) 12. C 语言本身不提供输入输出语句,输入和输出操作是由函数来 实现的.( √ ) 13. 若 a=3,b=2,c=1 则关系表达式"(a>b)==c" 的值为"真". (√ ) 14. 在C 语言中,整型数据在内存中占2个字节. ( × ) 15. 对二维数组a 来说,由于a+1与*(a+1)的值相等,因此二者的含义是一样的. (× ) 16. break 语句可用于循环体内,它将退出该重循环. ( √ ) 17. 将一个字符串"abc"赋给字符串变量str 的方法是str="abc".. (× ) 18. 参加位运算的数据可以是任何类型的数。( × ) 19. C 语言规定:在一个源程序中,main 函数的位置必须在最开始. ( × ) 20. 静态外部变量只在本文件内可用. ( √ ) 21. 若有宏定义:#define S(a,b) t=a;a=b;b=t由于变量t 没定义,所以此宏定义是错误的.( × ) 22. 字符串只能存放在字符型数组中. ( √ ) 23. 若 a=3,b=2,c=1 则关系表达式"(a>b)==c" 的值为"真". (√ ) 24. 在标准C 中,"="是判断两个数是否相等. ( × ) 25. 函数调用可以出现在执行语句中,但不能出现在表达式中. (× ) 26. break 语句可用于循环体内,它将退出该重循环. ( √ ) 27. strcat(s1,s2)函数是将字符串s1复制到字符串s2中. (× ) 28. 函数若无返回值,则它一定无形参。( × )

C语言试题

C语言题 一、判断题(每题1分,共计10分) 1.在C中,调用函数时,只能把实参的值传送给形参,形参的值不能传送给实参。() 2.使用float b定义的外部变量存放在内存中的动态存储区。() 3.如果一个函数位于C程序文件的上部,在该函数体内说明语句后的复合语句中定义 了一个变量,则该变量为局部变量,只在该复合语句中有效;。() 4.int (*ptr) (),则ptr是一维数组的名字。() 5.指针在任何情况下都可进行>,<,>=,<=,==运算。() 6.形参是局部变量,函数调用完成即失去意义。() 7.C语言程序总是从main()函数开始执行,C语言程序中的main()函数必须放在程序的开 始部分。() 8.在C语言程序中,函数的定义不能嵌套,但函数的调用可以嵌套。() 9.若函数调用时用数组名作为函数参数,实参与其对应的形参共占用同一段存储空间, 在调用函数中必须说明数组的大小,但在被调函数中可以使用不定尺寸数组。() 10.局部变量不能和全局变量重名。() 二、(共计10分) 1. 以下为Windows NT 下的32 位C程序,请计算sizeof 的值 char str[] = “Hello” ; char *p = str ; int n = 10; long d=12; 请计算 sizeof (str ) =__ (0.5分) sizeof ( p ) =__ (0.5分) sizeof ( n ) =__ (0.5分) sizeof(d)=__(0.5分) 2. 请给出如下程序的结果 int a = 3; int b = a << 3; a = ____ ,(0.5分) b = ____(0.5分) 3.int i=10, j=10, k=3; k*=i+j; k 最后的值是__(1分) 4. 1.-1,2,7,28,,126请问28和126中间那个数是__(2分) 5.如有定义语句int a[]={1,8,2,8,3,8,4,8,5,8}; ,则数组a的大小是___(1分) 6.以下程序: #include void main() { int x=10,y=10; printf("%d %d\n",x--,--y); } 输出结果为:___(0.5分),___ (0.5分) 7.函数调用语句: func((exp1,exp2),(exp3,exp4,exp5));

C语言试题及答案

C语言试题及答案 Company number【1089WT-1898YT-1W8CB-9UUT-92108】

第1章C语言概述习题1. 单项选择题 (1) C 语言是在 B 语言的基础上产生的。 A. 回车符 B. 冒号 C. 逗号 D. 分号 (2) 在 C 语言中,每个语句必须以 D 结束。 A. 回车符 B. 冒号 C. 逗号 D. 分号 (3) 标识符和关键字间,要用 C 隔开。 A. 回车符 B. 冒号 C. 空格 D. 分号 (4) 用 C 语言编写的源文件经过编译,若没有产生编译错误,则系统将( B )。 A. 生成可执行目标文件 B. 生成目标文件 C. 输出运行结果 D.自动保存源文件 (5) 下列说法中正确的是( B )。 A. 由于 C 源程序是高级语言程序,因此一定要在 TC 软件中输入 B. 由 C 源程序是字符流组成,因此可以作为文本文件在任何文本编辑的软件中输入 C. 由于C 程序是高级语言程序,因此输入后即可执行 D. 由于 C 程序是高级语言程序,因此它由命令组成 (6) 下列说法中正确的是( A )。 A. C 语言程序由主函数和 0 个或多个函数组成 B. C 语言程序由主程序和子程序组成

C. C 语言程序由子程序组成 D. C 语言程序由过程组成 (7) 下列说法中错误的是( D )。 A. 主函数可以分为两个部分:主函数说明部分和主函数体 B. 主函数可以调用任何非主函数的其他函数 C. 任何非主函数可以调用其他任何非主函数 D. 程序可以从任何非主函数开始执行 2. 填空题 (1) C 语言只有 37 个关键字和 9 种控制语句。 (2) C 语言是一种“中级语言”,既具有高级语言的特点又具有低级语言 的特点;既适合于开发系统软件又适合于编写应用程序。 (3) 每个源程序有且只有一个主函数,系统总是从该函数开始执行C语言程序。 (4) 在 C 语言程序中允许出现的字符集是 ASCII码字符集。 (5) C 语言的程序中有特殊含义的英语单词称为保留字。 (6) C 语言标识符的长度是前 8 位有效。 (7) C 语言中,标识符的定义规则是以字母或下划线为开头。 (8) C 语言程序的注释可以出现在程序中的任何地方,它总是以 /* 符号作为开始标记,以 */ 符号作为结束标记。

C语言试题-选择题及答案

C语言试题 ★第1 题: 阅读程序,选择程序的运行结果___A___。 #include main() { int x; x=try(5); printf(“%d\n”, x); } try(int n) { if(n>0) return(n*try(n-2)); else return(1); } A. 15 B. 120 C. 1 D. 前面3个答案均是错误的 第2 题: 在下列结论中,只有一个是正确的,它是___A___。 A. 递归函数中的形式参数是自动变量 B. 递归函数中的形式参数是外部变量 C. 递归函数中的形式参数是静态变量 D. 递归函数中的形式参数可以根据需要自己定义存储类型 ★第3 题: 阅读程序,选择程序的输出结果__A___。 #include f(int x, int y) { return(y-x); } main() { int (*g)(int,int); int a=5, b=6, c=2; g=f; c=(*g)(a,b); printf(“%d\n”, c); } A. 1 B. 2 C. 3 D. 前面3个答案均是错误的 第4 题: 阅读程序,选择程序的输出结果__D___。 #include

char *p=”abcdefghijklmnopq”; main() { while(*p++!=?e?) ; printf(“%c\n”, *p); } A. c B. d C. e D. f ★第6 题: 阅读程序,选择程序的输出结果___D___。 #include void prtv(int *x) { printf(”%d\n”, ++*x); } main() { int a=25; prtv(&a); } A. 23 B. 24 C. 25 D. 26 第7 题: 阅读程序,选择程序的输出结果___B___。 #include main() { static char a[ ]= ”language”, b[]=”program”; char *ptr1=a, *ptr2=b; int k; for(k=0; k<7; k++) if(*(ptr1+k)==*(ptr2+k)) printf(”%c”, *(ptr1+k)); } A. gae B. ga C. language D. 有语法错误 ★第8 题: 函数调用strcat(strcpy(str1, str2), str3)的功能是__C___。 A. 将串str1复制到串str2中,然后再连接到str3之后 B. 将串str1连接到串str2之后,再复制到str3之中 C. 将串str2复制到串str1中,然后再将串str3连接到串str1之后

(完整版)C语言程序设计选择题库及答案

单项选择题 导读:单项选择题要求从给出的四个备选答案中,选出一个最符合题意的答案。本类习题主要检查对C语言基本概念的掌握情况,读者可根据学习进度选做部分习题。在完成习题的过程中,不但要选出正确的答案,而且要清楚不正确的选项错在何处,以加深对概念的理解。对于掌握不准的问题, 应该通过上机实验来检验。 【1.1】以下不正确的C语言标识符是____。 A) int B) a_1_2 C) ab1exe D) _x 【1.2】以下是正确的C语言标识符是____。 A) #define B) _123 C) %d D) \n 【1.3】下列四组字符串中都可以用作C语言程序标识符的一组是。 ??? A) print B) i\am C) Pxq D) str_l ??? _3d one_half My->book Cpp ??? oodb start$it line# pow ??? aBc 3pai His.age while

【1.4】下面各选项组中,均是C语言关键字的组是。 A) auto,enum,include B) switch,typedef,continue C) signed,union,scanf D) if,struct,type 【1.5】下列不属于C语言关键字的是。A) default B) register C) enum D) external 【1.6】C语言程序从main()函数开始执行,所以这个函数要写在____。 A) 程序文件的开始B) 程序文件的最后 C) 它所调用的函数的前面D) 程序文件的任何位置 【1.7】下列关于C语言的叙述错误的是____ A) 大写字母和小写字母的意义相同 B) 不同类型的变量可以在一个表达式中 C) 在赋值表达式中等号(=)左边的变量和右边的值可以是不同类型 D) 同一个运算符号在不同的场合可以有不同的含义

2020年C语言题库及答案

2020年C语言题库及答案

姓名成绩 温馨提示:同学们,经过培训学习,你一定积累了很多知识,现在请认真、仔细地完成这张试题吧。加油!一单项选择题 1. 在C语言中,以 D 作为字符串结束标志 A)’\n’ B)’’ C) ’0’ D)’\0’ 2.下列数据中属于“字符串常量”的是( A )。 A.“a” B.{ABC} C.‘abc\0’ D.‘a’ 若干个字符构成字符串 在C语言中,用单引号标识字符;用双引号标识字符串 选项B,C,分别用{}和’’标识字符串 选项D,标识字符。 3、以下说法中正确的是( C )。 A、C语言程序总是从第一个定义的函数开始执行 B、在C语言程序中,要调用的函数必须在main( )函数中定义 C、C语言程序总是从main( )函数开始执行 D、C语言程序中的main( )函数必须放在程序的开始部分 4.下列关于C语言的说法错误的是( B )。 A) C程序的工作过程是编辑、编译、连接、运行 B) C语言不区分大小写。 C) C程序的三种基本结构是顺序、选择、循环 D) C程序从main函数开始执行

5.下列正确的标识符是(C )。 A.-a1 B.a[i] C.a2_i D.int t 6.下列C语言用户标识符中合法的是( B )。 A)3ax B)x C)case D)-e2 E)union 7.下列四组选项中,正确的C语言标识符是( C )。 A) %x B) a+b C) a123 D) 123 8、下列四组字符串中都可以用作C语言程序中的标识符的是( A )。 A、print _3d db8 aBc B、I\am one_half start$it 3pai C、str_1 Cpp pow while D、Pxq My->book line# His.age 9.C语言中的简单数据类型包括(D )。 A、整型、实型、逻辑型 B、整型、实型、逻辑型、字符型 C、整型、字符型、逻辑型 D、整型、实型、字符型 10.在C语言程序中,表达式5%2的结果是 C 。 A)2.5 B)2 C)1 D)3 11.如果int a=3,b=4;则条件表达式"a

相关文档