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

C语言复习资料

C语言复习资料
C语言复习资料

一、选择题

1、可以在C语言中使用的一组用户标识符是()。

A、3B sizeof DO

B、ab34 c1_c2 _for

C、_123 t2_a1_ printf

D、void 6b hat

2、以下均是字符常量或数值常量的选项是()。

A、0.0 0f 8.9e ‘&’

B、”A” 3.9e-2.5 1e1

C、’3’011 0xff00 0a

D、0xabcd 2e3 50.

3、以下选项中正确的实型常量是()。

A、0

B、0.618*10

C、567

D、3.1415

4、将汇编语言编写的程序翻译为目标程序的是()程序。

A、解释

B、编译

C、汇编

D、目标

5、不属于面向机器的语言是()。

A、符号语言

B、机器语言

C、汇编语言

D、C语言

6、程序段的基本结构中,不包含()。

A、函数结构

B、循环结构

C、顺序结构

D、分支结构

7、下列符号中,不属于转义字符的是()。

A、\\

B、\0xaa

C、\0

D、\t

8、正确的C语言标识符是()。

A、_sum_1

B、1_sum

C、?_sum

D、sum?

9、增1减1运算只能作用于()。

A、常量

B、变量

C、表达式

D、函数

10、设“int a=2,b=2;”,则++a+b的结果是(),a的结果是(),b的结果是()。A、2 B、3 C、4 D、5

11、下列运算符中优先级最高级的是()。

A、++

B、%

C、*

D、=

12、设“int a=2;”,则表达式“(a++*1/3)”的值是(),a的值是()。

A、0

B、1

C、2

D、3

13、字符数据在内存中的存储代码采用的是()。

A、反码

B、补码

C、EBCDIC码

D、ASC II码

14、char a; int b; float c; double d;

则表达式a*b+d-c值的类型为()。

A、int

B、float

C、double

D、char

15、字符串”\”\123\n\321a”的长度是()。

A、1

B、5

C、9

D、13

16、下列常量中,不属于字符常量的是()。

A、’\1x’

B、’0’

C、’\’’

D、’\n’

17、语句printf("a\bre\'hi\'y\\\bou\n");的输出结果是

A. a\bre\'hi\'y\\\bou

B. a\bre\'hi\'y\bou

C. re'hi'you

D. abre'hi'y\bou

18、设整型变量k的值为011,下列表达式中值不为1的是()。

A、k%8

B、k/8

C、++k-8

D、k++-8

19、设整型变量m的值为2,则执行printf("%d,",m+++m---m++);

printf("%d\n",m);后的结果是()。

A、-1,2

B、0,2

C、3,3

D、2,3

20、整型变量x、y和z已定义并已赋值,下列表达式正确的是()。

A、x=5++

B、5=x++

C、x=y=z==x

D、x=y+1=z

21、设整型变量m的值为8,则表达式“m-=m+=m*=m/=m”的值是()。

A、8

B、1

C、0

D、-1

22、设有整型变量x、y和z,则下列表达式中不属于逗号表达式的是()。

A、x>y,z=0

B、x,y=z

C、x++,(y,z)

D、x=(y,z)

23、在C语言数据类型转换原则中,以下错误的是()。

A、若+、-、*、/运算的两个数中有一个数为实型,则结果为实型。

B、如果int型与double型数据进行运算,结果是double型。

C、char型与int型进行运算,把字符型数据的ASCII码与整型数据进行运算,结果为整型。

D、char型与int型进行运算,运算结果为char型。

24、设有整型变量x和单精度型变量y,最终运算结果不是单精度型的表达式是()。A、(int)y+x B、(int)x+y

C、(float)y+x

D、(float)x+y

25、若已定义x和y为double类型,则表达式:x=1,y=x+3/2的值是()。

A、1

B、2

C、 2.0

D、 2.5

26、以下叙述正确的是()。

A、在C程序中无论是整数还是浮点数,只要允许的范围内都准确无误地表示。

B、若有“double a,b;”定义,可以直接执行语句“a=b+3.456;”因为b 已正确定义。

C、在C语言中,常量、变量、函数调用都是表达式的一种

D、在main函数中,一旦定义一个变量,系统将自动赋给它初值。

27、以下选项中,不正确的赋值语句是()。

A、i++;

B、i+=7;

C、x+y=z;

D、y=(int)x+4;

28、以下选项中不是C语言语句的是()。

A、{int i=1; i++; }

B、;

C、k=5,a=10

D、{ ; ;}

29、设整形变量n的值为9,下列表达式中值为1的表达式是()。

A、!n

B、!n>1

C、!n!=1

D、!n!==1

30、不能正确表达数学中逻辑关系“y在x和z之间(x=y)||(y>=z))

C、!(!(x

D、x

31、设整形变量m和n的值均为1,计算表达式“(m=m!=n)&&(n=m==n)”后,m和n的值是()。

A、1,1

B、1,0

C、0,1

D、0,0

32、设整形变量x的值为8,则表达式“x>5?x++:--x”的值是()。

A、9

B、8

C、7

D、1

33、设有整形变量m,n和k的值均为6,则表达式“n=k=++m,m=n!=k”的值是()。

A、0

B、1

C、6

D、7

34、下列表达式中,值不为4的表达式是()。

A、sizeof(double)

B、sizeof(float)

C、sizeof(long)

D、sizeof(unsigned long)

35、能判断整形变量m是偶数的正确表达式是()。

A、m/2

B、m%2

C、m%2 !=0

D、m%2 ==0

36、设字符型变量ch的值为’A’,整型变量m的值为1,假定执行ch=getchar();m=getchar();时,从键盘输入B<回车>,则变量ch和m的值分别为()。

A、’A’和’1’

B、’B’和’1’

C、’B’和‘□’

D、’B’和’\n’

(注:□表示空格)

37、设字符型变量ch的值为’A’,整型变量m的值为’1’,假定执行putchar(m); putchar(‘□‘); putchar(ch);后,则输出结果是()。

A、A1

B、1A

C、A□1

D、1□A

38、设整型变量a和b的值分别为8和9,printf(“%d,%d”,(a++,++b),b--);的输出是()。

A、8,8

B、8,7

C、9,9

D、10,9

39、设有下列程序段,则其正确的输出是()。

int x=011,y=0x11;

printf(“x=%-3dy=%3d”,x,y);

A、□□917□

B、x=9□□y=□17

C、x=□□9y=17□

D、x=11y=x11

40、运行下列程序的输出是()。

main()

{char ch=’B’;

printf(“%c%d”,ch,ch++);

}

A、C65

B、B65

C、B66

D、C66

41、若a、b、c均为int类型,要给a、b、c输入数据,正确的输入语句是()。

A、read(a,b,c);

B、scanf(“%d%d%d”,a,b,c);

C、scanf(“%D%D%D”,a,b,c);

D、scanf(“%d%d%d”,&a,&b,&c);

42、以下程序,输入ABC<回车>后,执行结果是()。

main()

{char c;

scanf(“%3c”,&c);

printf(“%c\n”,c);

}

A、ABC

B、A

C、B

D、C

43、以下程序()。

main()

{int x=0,y=0,z=0;

if (x=y+z) printf(“******\n”);

else printf(“######\n”);

}

A、有语法错误,不能编译通过

B、输出******

C、可以通过编译,但不能通过连接,因此不能运行

D、输出######

44、以下程序输出结果为()。

main()

{ int a=2,b=-1,c=2;

if (a

if (b<0) c=0;

else c+=1;

printf(“%d\n”,c);

}

A、0

B、1

C、2

D、3

45、以下程序输出结果为()。

main()

{ int a=2,b=-1,c=2;

if (a

{if (b<0) c=0;}

else c+=1;

printf(“%d\n”,c);

}

A、0

B、1

C、2

D、3

46、以下()为不正确的if语句。

A、if (x

B、if (x!=y) scanf(“%d”,&x) else scanf(“%d”,&y);

C、if (x==y) x+=y;

D、if (x

47、若执行以下程序时从键盘输入5,则输出结果为()。main()

{ int x;

scanf(“%d”,&x);

if (x++<5) printf(“%d\n”,x);

else printf(“%d\n”,x--);

}

A、7

B、6

C、5

D、4

48、设字符型变量ch已有值,下列语句中错误的是()。

A、scanf(“%c%c”,ch,ch);

B、{int ch=6;printf(“%d”,ch);}

C、5;

D、ch>48&&ch<0x3A;

49、设整形变量x,y,z的值值分别为3,2,1,则下列程序段的输出是()。if (x>y) x=y; if (x>z) x=z; printf(“%d,%d,%d\n”,x,y,z);

A、1,1,1

B、1,2,1

C、1,2,3

D、3,2,1

50、执行下列程序段后,变量x的值是()。

int a=8,b=7,c=6,x=1;

if (a>6) if (b>7) if (c>8) x=2; else x=3;

A、0

B、1

C、2

D、3

51、运行下列程序的结果是()。

main()

{float x=-28.9,y;

if (x<0) y=-x; else

if (x<0) y=x; else y=0;

printf(“%f\n”,y);

}

A、-28.9

B、28.9

C、-28

D、28

52、运行下列程序的结果是()。

main()

{int a1=10, a2=-9, a3=0, a4=100, x;

if (a1

if (a1

if (a2

printf(“%d,%d,%d,%d\n”,a1,a2,a3,a4)

}

A、-9,0,10,100

B、100,10,0,-9

C、0,-9,10,100

D、100,10,-9,0

53、运行下列程序的结果是()。

main()

{int a1=1,a2=1,a3=1,a4=1;

if (a1>0) a3++;

if (a1>a2) a3--;

else if (a1==a2) a3++;

else a3--;

printf(“%d,%d,%d,%d\n”,a4,a3,a2,a1);

}

A、1,1,1,1

B、1,2,3,4

C、4,3,2,1

D、1,3,1,1

54、下列正确的switch语句是()。

A、switch (x)

{case 1.0: printf(“*\n”);

case 2.0: printf(“**\n”);}

B、switch (int x)

{case 1: printf(“*\n”);

case 2: printf(“**\n”);}

C、switch (a+b)

{case 1: printf(“*\n”);

case 1+2: printf(“***\n”);}

D、switch (a+b) ;

{case 1: printf(“*\n”);

case 2: printf(“*\n”);}

(说明:switch后面的表达式(由常数、符号常量组成的表达式)必须为整型,也可用字符表达式。因此,选项A的case 后出现实型常量是不对的,选项B switch后面的括号中只能出现变量名,而出现类型说明符是不对的,选项C 中switch后面的表达式多了一个分号)

55、以下程序段的输出结果是()。

int x=0,y=2,z=3;

switch (x+1)

{case 1: switch (y==2)

{case 1:printf(“*”);break;

case 2:printf(“%”);break;}

case 2: switch (z)

{case 1: printf(“$”);

case 2: printf(“*”);break;

default : printf(“#”);}

}

A、*#

B、*$*

C、*%$*#

D、*

56、以下语句中,()不可能做到提前退出循环体语句。

A、goto

B、break

C、continue

D、return

57、执行下列语句后,整型变量x的值为()。

switch (x=1) {case 0: x=10;break;

case 1: switch (x=2) { case 1: x=20; break;

case 2: x=30;

}

}

A、30

B、20

C、10

D、1

58、执行下列程序后的输出结果是()。

char x=’9’;

while (x>’7’)

printf(“%c”,x--);

A、99

B、98

C、987

D、87

59、执行下列程序段后的输出结果是()。

int m=8;

while (m>=5) m--,--m,n=m---m;

printf(“%d,%d”,m,n);

A、2,0

B、5,-1

C、5,0

D、5,1

60、设整型变量x的值为1,执行下列程序段后,变量x的值是()。do x++; while (x++<2);

A、2

B、3

C、4

D、5

61、下列语句的输出结果是()。

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

A、**

B、***

C、****

D、******

62、执行下列语句后,变量k的值是()。

for(k=0;k<=5;k++) do k++;while (k<5);

A、5

B、6

C、7

D、8

63、下列程序段中,不能使变量m的值等于10的程序段是()。

A、m=0;

while (m++<9);

B、do m=0;

while (m++<10);

C、for(m=8;m<10;m++);

D、m=0;

L:m++; if (m<10) goto L;

64、执行下列程序的输出结果是()。

main()

{int i,m,n1=1,n2=1,n3;

for(m=n1+n2,i=1;i<5;i++)

{n3=n1+n2;m=m+n3;n1=n2,n2=n3;}

printf(“%d\n”,m);

}

A、6

B、12

C、20

D、33

65、如果在程序执行时输入:abc12.3xz和回车键,则输出结果为()。main()

{char ch;

float x=0;

do {ch=getchar();

if ((‘0’<=ch)&&(ch<’9’)) x=x*10+ch-48;

}while (ch!=’\n’);

printf(“%f\n”,x);

}

A、abc

B、12.3

C、123

D、123.0

66、下列叙述正确的是()。

A、continue和break只能用在循环体中

B、continue只能用在循环体中

C、break只能用在循环体中

D、continue只能用在循环体外

67、执行下列程序的输出结果是()。

main()

{int k;

for(k=9;k>0;k--)

if (k/3==0) continue;

else printf(“%d”,k);

}

A、875421

B、9876543

C、987654321

D、963

68、下列程序的主要功能是计算并输出1!+2!+…+10! 。缺少的内容是()。

main()

{float y=1.0,x;

int i,n;

for(n=2;n<11;n++)

{ ;

for(i=2;i<=n;i++) x=x*i;

y=y+x;

}

printf(“%f\n ”,y);

}

A 、x=0.0

B 、x=0

C 、x=1.0

D 、x=(float)n

69、下列程序的功能是根据以下公式求π值(直到最后一项小于10-6为止),程序中缺少的是( )。

+???+??+?++=9

473523173523152313112π

main()

{double s=0.0, t=1.0;

int n;

for(n=1;t>=1e-6;n++)

{s+=t; ;}

printf(“%f\n ”,2.0*s);

}

A 、t*=n/2*n+1

B 、t=n*t/(2*n+1)

C 、t=t*n/2*n+1

D 、t=t*n/(2*n-1)

70、设某网站成立第一天有10人点击,以后每天的点击数都是前一天的3倍多10人。下列程序是计算第11天有多少人点击,其中缺少是( )。 main()

{long s=10;

int i ;

for( ) s=3*s+10;

printf(“%ld\n ”,s);

}

A 、i=1;i<=11;i++

B 、i=1;i<12;i++

C、i=2;i<12;i++

D、i=2;i<=12;i++

71、定义数组时,代表数组长度的不能是()。

A、整型表达式

B、符号常量

C、整型常量

D、整型常量表达式

72、在选用数组元素的下标时,可能造成程序运行出错的下标是()。

A、正实数

B、整型变量

C、0

D、-1

73、设有语句“int a[]={1,2,3,9,8,7};”,则表达式“a[2]- a[4]”的值是()。

A、-2

B、-4

C、-5

D、-7

74、以下程序运行后,输出结果是()。

main()

{int y=18,i=0,j,a[8];

do

{a[i]=y%2;i++;

y=y/2;

}while (y>=1);

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

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

printf(“\n”);

}

A、10000

B、10010

C、00110

D、10100

75、下列程序的运行结果是()。

main()

{int a[6],i;

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

{a[i]=9*(i-2+4*(i>3))%5;

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

}

}

A、-4 0 4 0 4

B、-4 0 4 0 3

C、-4 0 4 4 3

D、-4 0 4 4 0

76、设有下列定义语句,则表达式“x[1][1]*x[2][2]”的值是()。float x[3][3]={{1.0,2.0,3.0},{4.0,5.0,6.0}};

A、0.0

B、4.0

C、5.0

D、10.0

77、设有定义语句“char s1[4]=”abc”;”,则表达式s1[3]的值()。

A、0.0

B、0

C、‘0’

D、‘c’

注:printf(“%d”,s1[3]);显示0

printf(“%c”,s1[3]);无显示(ascii值为0)

78、若有下列定义和语句,则运行后的输出结果是()。char s1[4]=”12”;printf(“%s”,s1);

A、1

B、12

C、□□12

D、12\0

□表示空格

79、设有定义语句“char a[]=”123”,b[]={‘1’,’2’,’3’};”

则正确的说法是()。

A、a[3]是不可知的任意字符

B、数组a和b的长度相等

C、b[3]的值为’\0’

D、数组a长度大于数组b的长度(注:不是a中和b中保存的字符串的长度)

80、下列语句在编译时,出错的语句是()。

main()

{float s[][2]={1,2,3,4}; /*第1条语句*/

s[1][0]=10; /*第2条语句*/

s[0][0]=s[0]+s[1]+s[2]+s[3]; /*第3条语句*/

printf(“%f\n”,s[1][1]); /*第4条语句*/

}

A、第1条语句

B、第2条语句

C、第3条语句

D、第4条语句

81、运行下列程序的输出结果是()。

main()

{int i,j,k,n[2];

for(i=0;i<2;i++) n[i]=0;

k=2;

for(i=0;i

for(j=0;j

printf(“%d\n”,n[k]);

}

A、1

B、3

C、程序出错

D、不确定的值

82、运行下列程序的输出结果是()。

#define N 7

main()

{int I,j,temp,a[N]={1,2,3,4,5,6,7};

for(i=0;i

{j=N-1-i;

temp=a[i];a[i]=a[j];a[j]=temp;

}

for(i=0;i

}

A、1234567

B、7654321

C、1357

D、246

83、运行下列程序的输出结果是()。

main()

{int x=123,a1[6]={100,50,10,5,2,1},a2[6],j;

while (x!=0)

{a2[0]= a2[1]= a2[2]= a2[3]= a2[4]= a2[5]=0;

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

{ a2[j]=x/ a1[j];

x=x% a1[j];}

printf(“%d, %d, %d, %d, %d, %d,\n”,a2[0],a2[1],a2[2],a2[3],a2[4],a2[5]);

}

}

A、1,2,3,0,0,0

B、0,2,0,4,0,3

C、1,0,2,0,1,1

D、0,0,0,1,2,3

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

main()

{int a[10],a1[]={1,3,6,9,10},a2[]={2,4,7,8,15},i=0,j=0,k;

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

if (a1[i]

else a[k]=a2[i++];

for(k=0;k<4;k++) printf(“%1d”,a[k]);

}

A、1478

B、1324

C、2413

D、4321

85、下列程序从键盘输入一个字符串,统计并输出其中数字字符的数目,程序中缺少的是()。

main()

{char s[81];

int ;

scanf(“%s”,s);

while (s[i]!=’\0’)

{if (s[i]>=’0’ && s[i]<=’9’) n++;

i++;

}

printf(“%d\n”,n);

}

A、n=0

B、n=1,i=0

C、n=i=0

D、n=0,i=0

86、函数调用“strcmp(“123”,”321”)”的返回值是()。

A、0

B、1

C、负整数

D、任意正整数

87、设数组a中存放字符串“AB12cd”,则执行

printf(“%s”,strupr(a));后,显示的是()。

A、ab12cd

B、ABCD

C、AB12cd

D、AB12CD

88、设有两个字符数组a,b,则以下正确的输入语句是()。

A、gets(a,b);

B、scanf(“%s%s”,a,b);

C、scanf(“%s%s”,&a,&b);

D、gets(“a”);gets(“b”);

89、有两个字符数组a[80],b[80],则正确的输出语句是()。

A、puts(a,b);

B、printf(“%s,%s”,a[],b[]);

C、putchar(a,b);

D、puts(a);puts(b);

90、若有说明“int a[][3]={1,2,3,4,5,6,7};”,则a数组的第一维的大小是()。

A、2

B、3

C、4

D、无确定值

91、下面是对s的初始化,其中不正确的是()。

A、char s[5]={“abc”};

B、char s[5]={‘a’,’b’,’c’};

C、char s[5]=””;

D、char s[5]=”abcdef”;

92、下面程序段的运行结果是()。

char c[15]={‘a’,’b’,’\0’,’c’,’\0’};

printf(“%s”,c);

A、’a’’b’

B、ab

C、ah c

D、a b

93、下面程序段的运行结果是()。

char a[7]=”abcdef”;

char b[4]=”ABC”;

strcpy(a,b);

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

A、□(表示空格)

B、\0

C、e

D、f

94、设有下面的程序段,则()。

char a[3],b[]=”China”;

a=b;

printf(“%s”,a);

A、运行后输出China

B、运行后输出Ch

C、运行后输出Chi

D、编译出错

95、判断字符串a和b是否相等,应使用()。

A、if (a= =b)

B、if (a=b)

C、if (strcpy(a,b) )

D、if (strcmp(a,b) )

96、判断字符串s1是否大于字符串s2,应当使用()。

A、if (s1>s2)

B、if (strcmp(s1,s2))

C、if (strcmp(s2,s1)>0)

D、if (strcmp(s1,s2)>0)

97、运行下列程序的输出结果是()。

#include “string.h”

main()

{char s[60],s1[10]={“23”},s2[20]={“123”},s3[30]={“2348”};

if (strcmp(s1,s2)<0) {strcpy(s,s1);strcpy(s1,s2); strcpy(s2,s);}

if (strcmp(s1,s3)<0) {strcpy(s,s1);strcpy(s1,s3); strcpy(s3,s);}

if (strcmp(s2,s3)<0) {strcpy(s,s2);strcpy(s2,s3); strcpy(s3,s);} printf(“%s\n%s\n%s\n”,s1,s2,s3);

}

A、23

123

2348

B、2348

23

123

C、234823123

D、23132348

98、有以下程序

#include

main()

{ char *p,*q;

p=(char*)malloc(sizeof(char)*20); q=p;

scanf(“%s%s”,p,q); printf(“%s %s\n”,p,q);

}

若从键盘输入:abc def<回车>,则输出结果是:

A.def def

B. abc def

C. abc d

D. d d

99、设定义某函数时,函数头如下:int f(int a[],int b),则下列说法中错误的是()。

A、该函数有整型的返回值

B、调用时要给形参b分配内存

C、数据传递都是地址传递方式

D、调用时第一个实参要以是指针变量100、下列说法中,正确的是()。

A、函数可以嵌套定义,但是不能嵌套调用

B、可以通过return(表达式1,表达式2,…)语句返回多个值

C、函数的返回值可以是整型、实型、字符型、地址型及结构型

D、函数f( )不能直接调用自己,但是可以调用函数g( ),在函数g( )调用f( ) 101、C语言允许函数值类型默认定义,此时该函数值隐含的类型是()。

A、float型

B、int型

C、long型

D、double型

102、如果在一个函数的复合语句中定义了一个变量,则该变量()。

A、只在该复合语句中有效

B、在该函数中有效

C、在本程序范围内均有效

D、为非法变量

103、几是函数中未指定存储类别的局部变量,其隐含的存储类别为()。

A、自动(auto)

B、静态(static)

C、外部(extern)

D、寄存器(register)

104、在一个C源程序文件中,若要定义一个只允许本源文件中所有函数使用的全局变量,则该变量需要使用的存储类别是()。

A、extern

B、register

C、auto

D、static

105、若调用一个函数,且此函数中没有return语句,则该函数()。

A、没有返回值

B、返回若干个系统默认值

C、能返回一个用户所希望的函数值

D、返回一个不确定的值

106、C语言规定,简单变量做实参时,它和对应形参之间的数据传递方式是()。

A、地址传递

B、单向值传递

C、由实参传给形参,再由形参传回给实参

D、由用户指定传递方式

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

A、数组的首地址

B、数组第一个元素的值

C、数组中全部元素的值

D、数组元素的个数

108、以下正确的说法是()。在C语言中简单变量作函数参数时,

A、实参和与其对应的形参各占用独立的存储单元

B、实参和与其对应的形参共同占用一个存储单元

C、只有当实参和与其对应的形参同名时才共占存储单元

D、形参是虚拟的,不占用存储单元

109、以下程序的正确运行结果是()。

main()

{int a=2,i;

for(i=0;i<3;i++) printf(“%4d”,f(a));

}

f(int a)

{int b=0;static int c=3;

b++;c++;

return(a+b+c);

}

A、7 7 7

B、7 10 13

C、7 9 11

D、7 8 9

110、以下正确的函数形式是()。

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;}

111、以下程序的正确运行结果是()。

#include

void num()

{extern 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”,x,y);

}

A、12,2

B、不确定

C、5,25

D、1,12

112、以下不正确的说法为()。

A、在不同函数中可以使用相同名字的变量

B、形式参数是局部变量

C、在函数内定义的变量只在本函数范围内有效

D、在函数内的复合语句中定义的变量在本函数范围内有效

113、以下程序有语法性错误,有关错误原因的正确说法是()。main()

{int G=5,k;

void prt_char();

k= prt_char(G);

}

A、语句void prt_char();有错,它是函数调用语句,不能用void说明

B、变量名不能使用大写字母

C、函数说明和函数调用语句之间有矛盾

D、函数名不能使用下划线

114、C语言规定,函数返回值的类型由()。

A、return语句中的表达式类型所决定

B、调用该函数时的主调函数类型所决定

C、调用该函数时系统临时决定

D、在定义该函数时所指定的函数类型所决定

115、若有定义: int a[10],则对数组a元素的正确引用是()。

A、a[10]

B、a[3,5]

C、a(5)

D、a[10-10]

116、设有宏定义命令:#define MUL 2+3 ,则表达式“5+MUL*5.0”的值为()。

A、50.0

B、30.0

C、22.0

D、20.0

117、设有宏定义:# define M(x,y) x

A、15

B、11

C、-15

D、-11

118、C语言程序中,main函数()。

A、可以在任何地方出现

B、必须在所有函数的前面

C、必须在所有函数的后面

D、以上说法都不对

119、以下说法中,正确的是()。

A、宏参数本身无数据类型

B、宏名只能由大写字母组成

C、宏替换是在程序执行时进行的

D、宏替换时参数数据类型应和定义时相同

120、运行下列程序的输出结果是()。

# define SUB(X,Y) (X)*Y

main()

{int a=3,b=4;

printf(“%d\n”,SUB(a++,b++));

}

A、12

B、15

C、16

D、20

121、运行下列程序的结果是()。

# define A(x) (x*x)

# define B(y,z) A(y)

main()

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

c=B(a,b);

printf(“%d\n”,c);

}

A、4

B、5

C、6

D、9

122、以下叙述中不正确的是()。

A、预处理命令行都必须以#开始

B、在程序中凡是以#开始的语句行都是预处理命令行

C、C程序在执行过程中对预处理命令进行处理

D、以下是正确的宏定义:#define IBM_PC

123、以下有关宏替换的叙述不正确的是()。

A、宏替换不占用运行时间

B、宏名无类型

C、宏替换只是字符替换

D、宏名必须用大写字母表示

124、若有以下宏定义,则语句z=2*(N+Y(5));执行后的结果是()。#define N 2

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

A、语句有错误

B、z的值为34

C、z=70

D、z无定值125、设有指针变量p已指向float型变量x,正确的输入语句是()。

A、scanf(“%f”,x);

B、scanf(“%d”,&x);

C、scanf(“%f”,p);

D、scanf(“%f”,*p);

126、以下叙述中,不正确的是()。

A、C语言中,顺序读写方式不适用于二进制文件

B、C语言中的文本文件以ASCII码形式存储数据

C、C语言中,随机读写方式不适用于文本文件

D、C语言中对二进制文件的访问速度比文本文件快

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

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

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

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

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

128、和定义语句char *a=”ccw”;功能完全相同的程序段是()。A、char *a,a=”ccw”; B、char *a; a=”ccw”;

C、char *a; *a=”ccw”;

D、char *a,*a=”ccw”;

129、下列数据定义语句中,正确的是()。

A、char ch[2],*p=ch[1];

B、char ch,*p=&ch;

C、float *p=&a,a=5;

D、float b1,b2,p=&b1;

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

A、*((str++)+i)

B、*(str+i-1)

C、*(str+i)

D、str[i+10]

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

A、p+1

B、x

C、*p

D、&x[0]

132、设有数据定义语句int a[10]={1,2,3,4,5,6,7,8,9,10},*p=a;则数值为8的

C语言练习试题和答案

单项选择题: 1.(A)是构成C语言程序的基本单位。 A、函数 B、过程 C、子程序 D、子例程 2.C语言程序从 C开始执行。 A) 程序中第一条可执行语句 B) 程序中第一个函数 C) 程序中的main函数 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)。 [i] 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# 语言中的简单数据类型包括(D)。 A、整型、实型、逻辑型 B、整型、实型、逻辑型、字符型 C、整型、字符型、逻辑型 D、整型、实型、字符型 10.在C语言程序中,表达式5%2的结果是C。 A) B)2 C)1 D)3 11.如果int a=3,b=4;则条件表达式"a

C语言复习题A

C语言复习题A 一、单项选择题 1、C语言提供的合法关键字是_______。 A、AUTO B、include C、unsigned D、dafault 2、合法的C语言标识符是__________。 A、2a B、sum C、default D、a+b 3、下面四个选项中,不是C语言整型常量的是。 A、01 B、0x11 C、081 D、-32768 4、下面四个选项中正确的实型常量是。 A、0x12 B、-12345.e-3 C、Ie0.5 D、e-5 5、若a为整型变量,则下面语句。 a=-2L; printf(“%d\n”,a); A、赋值不合法 B、输出值为-2 C、输出为不确定值 D、输出值为-2 6、在C语言中,要求参加运算的数必须是整数的运算符是。 A、/ B、! C、% D、= = 7、字符串“\\012\012”在内存中占用的字节数是个。 A、4 B、5 C、6 D、7 8、下列说法中,错误的是。 A、变量的定义可以放在所有函数之外 B、变量的定义可以不放在本编译单位中,而放在其他编译单位中 C、变量的定义可以放在某个函数的函数头中 D、变量的定义可以放在某个复合语句的开头 9、下列说法中,正确的是。 A、自动型变量是分配在内存的数据区的 B、寄存器型变量是分配在内存的数据区中的 C、表态型变量是分配在内存的数据区中的 D、外部参照型变量是分配在内存的数据区中的 10、在C语言中,一个int型数据在内存中占用2个字节,则int型数据的取值范围是。 A、-128~127 B、-32768~32767 C、0~65536 D、0~2147483647 11、下面不正确的字符串常量的。 A、’abc’ B、”12’12” C、”0” D、” ” 12、char型常量在内存中存放的是。 A、ASCII代码值 B、BCD代码值 C、内码值 D、十进制代码值 13、以下程序段。 int x=2,y=3;

2017全国计算机等级考试二级C语言知识点超全整(打印版).docx

全国计算机等级考试

目录 第-部分公共基础知识 第1章算法与数据结构 (1) 考点1算法........................... I 考点2数据结构.. (1) 考点3线性表及英顺序存储结构 (1) 考点4栈和队列 (1) 考点5线性链表 (2) 考点6树与二叉树 (2) 考点7查找技术 (3) 考点8排序技术 (3) 第2章程序设计基础 (4) 考点I程序设计方法与风格 (4) 考点2结构化程序设计 (5) 考点3面向对象的程序设计 (5) 第3章软件工程基础 (5) 考点1软件工程基本概念 (5) 考点2软件分析方法 (6) 考点3结构化设计方法 (7) 考点4软件测试 (8) 考点5程用的调试 (9) 笫4帝数据库设计基础 (9) 考点1数据库系统的基本概念 (9) 考点2数据带系统的基木概念 (10) 考点3关系代数 (12) 考点4数据库设计与管理 (12) 第二部分二级C语言 笫1章程序设汁基本概念 (14) 考点1程序设计 (14) 考点2 C程序的结构和格式 (14) 考点3常鱼和变蛍 (14) 考点4算术表达式 (15) 考点5赋值表达式 (16) 考点6自加.口减和逗号运算 (16) 第2章顺疗结构 (17) 考点1字符型常屋与变虽 (17) 考点 2 putchar 与gclchar 函数 (17) 考点3 printf函数 (17) 考点4 scanf函数 (18) 考点5位运算的含义和应用 (18) 第3章选择结构 (19) 考点1关系运算符和关系表达式 (19) 考点2逻轉运算符和逻辑表达式 (19) 考点3 if语句及其构成的选择结构 (19) 考点4 switch语句与break语句 (20) 第4章循环结构 (20) 考点1 while循环结构 (20) 考点2 do-while循环结构 (21) 考点3 for循环结构 (21) 考点4嵌套循环语句 (21) 第5章函数 (21) 考点I库函数 (21) 考点2函数的调用 (22) 考点3参数传递 (22) 考点4函数的递归调用 (23) 考点5局部、全局变量和存储分类 (23) 第6章地址与指针 (23) 考点1变量的地址和指针 (23) 考点2抬针变量的操作 (24) 考点3函数之间地址的传递 (24) 第7章数组 (24) 考点1 一维数组的定义及元素的引用??24 考点2函数对-维数组及元素的引用??25 考点3二维数组的定义 (25) 考点4二维数组和指针 (25) 考点5二维数组名和指针数组作为实参???26 第8章字符串 (26) 考点|用-?维字符数组存放字符出? (26) 考点2使指针指向字符串 (26) 考点3字符串的输入和输出 (26) 考点4字符串数组 (27) 考点5用于字符串处理的函数 (27) 第9章编译预处理和动态存储分配 (27) 考点I編译预处理 (27) 考点2宏替换 (27) 考点3文件包含处理 (28) 考点4动态存储分配 (28) 第10章结构体.共用体和用戸定义类型28考点1结构体 (28) 考点2共用体 (29) 考点3用户定义类型 (29) 第11章文件 (29) 考点1文件指针 (29) 考点2文件的读写 (30)

C语言常用函数

C语言的常用库函数 函数1。absread()读磁盘绝对扇区函数 原形:int absread(int drive,int num,int sectnum,void *buf) 功能:从drive指定的驱动器磁盘上,sectnum指定的逻辑扇区号开始读取(通过DOS中断0x25读取)num 个(最多64K个)扇区的内容,储存于buf所指的缓冲区中。 参数:drive=0对应A盘,drive=1对应B盘。 返回值:0:成功;-1:失败。 头文件:dos.h 函数2。abswrite()写磁盘绝对扇区函数 原形:int abswrite(int drive,int nsects,int lsect,void *buffer) drive=0(A驱动器)、1(B驱动器)、 nsects=要写的扇区数(最多64K个); lsect=起始逻辑扇区号; buffer=要写入数据的内存起始地址。 功能:将指定内容写入(调用DOS中断0x26)磁盘上的指定扇区,即使写入的地方是磁盘的逻辑结构、文件、FAT表和目录结构所在的扇区,也照常进行。 返回值:0:成功;-1:失败。 头文件:dos.h 函数3。atof()将字符串转换成浮点数的函数 原形:double atof(const char *s) 功能:把s所指向的字符串转换成double类型。 s格式为:符号数字.数字E符号数字 返回值:字符串的转换值。 头文件:math.h、stdlib.h 函数4。atoi()将字符串转换成整型数的函数 原形:int atoi(const char *s) 功能:把s所指向的字符串转换成int类型。 s格式为:符号数字 返回值:字符串的转换值。若出错则返回0。 头文件:stdlib.h 函数5。atol()将字符串转换成长整型数的函数 原形:long atol(const char *s)

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语言概述1.1选择题 【题1.1】以下不是C语言的特点的是( B ) A.C语言简洁、紧凑 B.能够编制出功能复杂的程序 C. C语言可以直接对硬件进行操作 D.C语言移植性好 【题1.2】以下不正确的C语言标识符是( D )。A.ABC B.abc C.a_bc D.ab.c 【题1.3】以下正确的c语言标识符是( C )。 A.%x B.a十b C.a123 D.test! 【题1.4】一个c程序的执行是从( A ). A.main( )函数开始,直到main( )函数结束B.第一个函数开始,直到最后一个函数结束 C.第一个语句开始,直到最后一个语句结束 D.main( )函数开始,直到最后一个函数结束 【题1.5】一个C语言程序是由(B)。 A)一个主程序和若干子程序组成 B)函数组成 C)若干过程组成 D)若干子程序组成 【题1.6】一个c程序是由( B )。 A.一个主程序和若干子程序组成 B.一个或多个函数组成 C. 若干过程组成 D.若干子程序组成 【题1.7】C语言派程序的基本单位是( B )。 A.过程 B.函数 c子程序 D.标识符 【题1.8】编辑程序的功能是( A )。 A.建立并修改程序 B.将c源程序编译成目标程序C.调试程序 D.命令计算机执行指定的操作

1.2填空题 【题1.9】c语言符号集包括【英文字母、数字和一些有待定含义的标点符号】。 【题1.10】一个c程序有且仅有一个【main()】函数。 【题1.11】C程序的基本单位是【函数】。 【题1.12】一个c派程序有【1】个main( )函数和【若干】二个其他函数。【题1.13】在一个C源程序中,注释部分两侧的分界符分别是【/*】和【*/】。 【题1.14】结构化设计中的三种基本结构是【顺序结构、分支结构和循环结构】。 【题1.15】在C语言中,输入操作是由库函数【scanf】完成的,输出函数是由库函数【printf】完成的。 1.3编程题 【题1.16】编写一个程序,在屏幕上输出你的姓名。试着上机编辑、编译、运行你的程序。 #include main() { printf("My Name is : Your Name!\n"); } 第二章数据类型、运算符与表达式 2.1选择题 【题2.1】以下结果为整数的表达式(设有int i;char c;float f;)(B). A.i十f B.i*c C.c十f D.i十c十f 【题2.3】以下使i的运算结果为4的表达式是(D)。 A.int i=0,j=0; (i=3,(j十十)十i); B.int i=1,j=0; j=i=((i=3)*2); C.int i=0,j=1; (j==1)?(i=1);(i=3); D.int i=1,j=1;

计算机二级C语言高效考点

计算机二级C语言高效考点 2017年计算机二级C语言高效考点锦集 C语言基本知识 【考点1】C程序 C语言程序结构有三种:顺序结构,循环结构(三个循环结构),选 择结构(if和switch) 【考点2】main函数 每个C语言程序中main函数是有且只有一个。读程序都要从 main()入口,然后从最上面顺序往下读(碰到循环做循环,碰到选择做 选择)。 【考点3】存储形式 计算机的数据在电脑中是以二进制的形式保存。最低的存储单元是bit(位),位是由为0或者1构成。byte是指字节,一个字节=八 个位。数据存放的位置就是它的地址。 【考点4】注释 是对程序的说明,可出现在程序中任意合适的地方,注释从“/*”开始到最近一个“*/”结束,其间任何内容都不会被计算机执行, 注释不可以嵌套。 【考点5】书写格式 每条语句的后面必须有一个分号,分号是语句的一部分。一行内可写多条语句,一个语句可写在多行上。 【考点6】标识符 合法的用户标识符考查: 合法的要求是由字母,数字,下划线组成。有其它元素就错了。

并且第一个必须为字母或则是下划线。第一个为数字就错了。 C语言标识符分如下3类 (1)关键字。它们在程序中有固定的含义,不能另作他用。如int、for、switch等。 (2)预定义标识符。预先定义并具有特定含义的标识符。如define、include等。 (3)用户标识符。用户根据需要定义的标识符,符合命名规则且不与关键字相同。 关键字不可以作为用户标识符号。maindefinescanfprintf都不是关键字。迷惑你的地方If是可以做为用户标识符。因为If中的第一个字母大写了,所以不是关键字。 【考点7】实型数据 实型数据的合法形式:小数形式和指数形式。掌握判定指数形式合法性。 2.333e-1就是合法的,且数据是2.333×10-1。 考试口诀:e前e后必有数,e后必为整数。 【考点8】字符 字符数据的合法形式:: '1'是字符占一个字节,"1"是字符串占两个字节(含有一个结束符号)。 '0'的ASCII数值表示为48,'a'的ASCII数值是97,'A'的ASCII数值是65。 字符型和整数是近亲: chara=65; printf(“%c”,a);得到的输出结果:a

C语言中常见的功能函数

C语言中常见的功能函数(应掌握的编程) 1、两个变量值的交换 void exchang(float *x,float *y) /*形参为两个变量的地铁(指针)*/ {float z; z=*x; *x=*y; *y=z; } void main() {float a,b; scanf(“%f%f”,&a,&b); exchang(&a,&b); /*因为形参是指针,所以实参必须给变量的地址,不能给变量名*/ printf(“a=%f,b=%f”,a,b); } 2、判断一个整数的奇偶 int jou(int n) /*如果是奇数返回1,否则返回0*/ { if(n%2==0) return 0; return 1; } 3、小写字符转换成大写字符 根据实参传给形参的字母,判断是否是小写字母,如果是小写字母,则转换成大写字母,否则不进行转换,函数返回转换后或原来的字符。 本函数仿照toupper()库函数的功能编写(toupper(c) 是将变量c字母转换成大写字母,如果不是小写字母不转换)。 char toupper1(char ch) {if(ch>=?a?&&ch<=?z?) ch-=32; /*小写字母比对应的大写字母ASCII码值大32*/ return ch; } 4、判断一个字符是否是字母(或数字) 根据实参传给形参的字符,判断是否是字母(或数字),如果是字母(或数字)返回1,否则返回0。此函数是根据库函数isalpha()(或isdigit())来编写的。 int isalpha1(char ch) /*判断是否是字母*/ {if(ch>=?A?&&ch<=?Z?||ch>=?a?&&ch<=?z?) return 1; else return 0; } int isdigit1(char ch) /*判断是否是数字字符*/ {if(ch>=?0?&&ch<=?9?) return 1; else return 0; } 5、根据学生成绩,返回其等级 char fun(float cj) {char c; switch((int)cj/10) {case 10:

C语言试卷及答案

一、选择题(每题 1 分,共 20 分) 1. C 语言程序的三种基本结构是顺序结构、选择结构和结构。 A、循环 B、递归 C、转移 D、嵌套 2. 下列标识符中,合法的是_______ 。 A) unsigned B) 5ab C) INT# D)_num2 3. 若float x ;x = 10/4 ;x的值是。 A、2.5 B、2.0 C、3 D、 2 4. 表达式!x 等价于。 A、x==0 B、x==1 C、x != 0 D、x != 1 5. 算术运算符、赋值运算符和关系运算符的运算优先级按从高到低的顺序依次为。 A、算术运算、赋值运算、关系运算 B、关系运算、赋值运算、算术运算 C、算术运算、关系运算、赋值运算 D、关系运算、算术运算、赋值运算 6. 能将高级语言编写的源程序转换为目标程序的是。 A、链接程序 B、解释程序 C、编译程序 D、编辑程序 7. 下列语句定义pf为指向float类型变量f的指针,是正确的。 A、float f, *pf = f; B、float f, *pf = &f; C、float *pf = &f, f; D、float f, pf = f; 8. 一个C程序的执行是从。 A、本程序的main函数开始,到main函数结束 B、本程序文件的第一个函数开始,到本程序文件的最后一个函数结束 C、本程序的main函数开始,到本程序文件的最后一个函数结束 D、本程序文件的第一个函数开始,到本程序main函数结束 9. 能正确表示“当x的取值在[1,10]或[[200,210]范围内为真,否则为假”的表达式是________。 A、(x>=1)&&(x<=10)&&(x>=200)&&(x<=210) B、(x>=1)||(x<=10)||(x>=200)||(x<=210) C、(x>=1)&&(x<=10)||(x>=200)&&(x<=210) D、(x>=1)||(x<=10)&&(x>=200)||(x<=210) 10. 对两个数组a和b进行如下初始化 char a[]=“ABCDEF”;char b[]={ …A?,?B?,?C?,?D?,?E?,?F?}; 则以下叙述正确的是。 A、a和b数组完全相同 B、a和b长度相同 C、a和b中都存放字符串 D、a数组比b数组长度长 11. 是不正确的字符常量。 A、'\n' B、'1' C、"a" D、'\101' 12. 若变量已正确定义,语句“if(a>b) k=0; else k=1;”和等价。 A、k=(a>b)?1:0; B、k=a>b; C、k=a<=b; D、a<=b ? 0 : 1; 13. 设变量定义为“int x, *p=&x;”,则&*p相当于。 A、p B、*p C、x D、*&x 14. 有两个字符数组a、b,则以下正确的输入语句是。 A)gets(a,b); B) scanf(“%s%s”,a,b); C) scanf(“%s%s”,&a,&b); D) gets(“a”),gets(“b”); 15. C语言规定,简单变量做实参时,它和对应形参之间的数据传递方式是。 A、地址传递 B、单向值传递

最新C语言考试复习题

一、选择题 1. 在每个C 程序中都必须包含有这样一个函数,该函数的函数名为 。 A. main B. MAIN C. name D. function 2. 在以下关于C 语言的注释的叙述中,不正确的是 。 A .注释可用"/*"、"*/"形式表示,也可用"//"形式表示 B .编译器在编译一个程序时,将跳过注释,不对其进行处理 C .编译器在编译一个程序时,可发现注释中的单词拼写错误 D .程序中注释的多少不会影响所生成的可执行文件的长度 3. 以下叙述不正确的是 。 A .在C 程序中,严格区分大小写字母 B .一个 C 源程序有且仅有一个main 函数 C .在C 程序中,注释只能位于一条语句的后面 D .一个C 程序总是从main 函数开始执行 4. 下列合法的标识符为 A. abde+ B. #KDJF C. 67KDJ D. DK3_ 5. 关于字符串和字符的关系正确的是 A. “A ”与’A ’是相同的 B. 字符串是常量,字符是变量 C. “A ”与’A ’是不同的 D. “A ”与“A ”是相同的 6. 下面关于语句的说法正确的是 A. 下面这两段程序的执行效果是一致的 B. 空语句是只有一个分号的语句,它其实什么也不干 C. 语句的构成不一定需要分号 if (x>y) {z=x; s=z*z;} else {z=y;s=1/(z*z);} if (x>y) z=x; s=z*z; else z=y;s=1/(z*z);

D.语句的书写对程序的运行不起作用,因此可以随便写都可以 7.以下各标识符中,合法的用户标识符组为。 A.PAd,P#d,b-b,abc,_0123,ssiped B.cin,a10,CPP,float,del_word,signed C.void,max,hiy,,list,*jer D.a,temp,_isw,INT,keep,wind 8.字符串“\”E OF= -\61\””的长度是。 A.8 B.9 C.12 D.非法字符串9.数学式x sin在C程序中对应的不正确的表达式为。 A.sqrt(sin(x)>0?sin(x):-sin(x)) B.sqrt(fabs(sinx)) C.sqrt(sqrt(sinx*sinx)) D.fabs(sqrt(sin(x))) 10.下列是C语言的有效标识符? A._No1 B.No.1 C.12345 D.int 11.C语言中,表示一条语句结束的标号是 A.# B.; C.// D.} 12.每个C程序中都必须有且仅有一个 A.类B.预处理命令C.主函数D.语句13.下列数据类型不是C语言基本数据类型的是。 A.字符型B.整型C.实型D.数组 14.下列字符列中,可作为C语言程序自定义标识符是。 A.switch B.file C.break D.do 15.运算符+、<=、=、% 中,优先级最低的运算符是。 A.+ B.<= C.= D.% 16.下列字符列中,可以作为“字符串常量”的是。 A.ABC B.″xyz″ C.′uvw′ D.′a′ 17.设变量m,n,a,b,c,d均为0,执行(m = a= =b)||(n=c= =d)后,m,n的值是。 A.0,0 B.0,1 C.1,0 D.1,1 18.字符串"vm\x43\\\np\102q"的长度是。 A.8 B.10 C.17 D.16

C语言常用IO函数

一些比较常用的io函数,总结了一下,一块贴出来了 stdin标准输入流 stdout标准输出流 stderr标准错误流 字符IO函数 1.int getchar() 说明:从stdin读取1个字符 返回值:成功,返回该字符;出错,返回EOF; 2.int fgetc(FILE fp) 说明:功能同getchar,默认从文件fp读取; 返回值:成功,返回该字符;出错,返回EOF; 可以重定向 3.int getc(FILE fp) 说明:功能与fgetc相同,但getc既可以被用作 函数实现,也可以被用作宏实现,并且它的编码效率 可能会更高. 可以重定向 4.int putchar(int ch) 说明:向stdout输出字符ch; 返回值:成功,返回该字符;出错,返回EOF; 5.int fputc(int c,FILE fp) 说明:功能同putchar,默认向fp输出字符ch; 返回值:成功,返回该字符;出错,返回EOF; 6.int putc(int c,FILE fp) 说明:功能与fputc相同,但putc与getc一样既可能被用作 函数实现,也可能被用作宏实现,并且它的编码效率可能会更高;可以重定向 字符串IO函数 1.char gets(char str) 说明:从stdin读取字符串(不包括'n')写入到字符串str中; 返回值:成功,返回str首地址;错误,返回NULL; 2.char fgets(char str,int N,FILE fp) 说明:默认从文件fp中读取N个字符(包括'n')写入到字符串str中,

如果实际输入字符串小于N,fgets自动添加'n', 返回值:成功,返回字符串首地址;错误或遇到EOF,返回NULL;可以重定向 3.int puts(const char str) 说明:向stdout输出字符串str,然受输出一个'n', 返回值:成功,返回非负值;错误,EOF; 4.int fputs(const char str,FILE fp) 说明:功能同puts,默认向文件fp写入字符串str; 返回值:成功,返回非负值;错误,EOF; 可以重定向 格式化IO函数 1.int scanf(const char format,...) 说明:根据format从stdin格式化读取N个值,并输入到... 返回值:成功,返回读取的项数;出错,返回EOF 2.int fscanf(FILE fp,const char format,...) 说明:功能同scanf,默认从文件fp读取, 返回值:成功,返回读取的项数;出错或遇到文件尾,返回EOF 可以重定向 3.int sscanf(const char buf,const char format,...) 说明:根据format从buf格式化读取N个值,并输入到... 返回值:成功,返回读取的项数;出错,返回EOF 4.int printf(const char format,...) 说明:根据format格式化数据,并输出到stdout 返回值成功,返回输出字符数;错误,返回负数; 5.int fprintf(FILE fp,const char format,...) 说明:功能同printf,默认向文件fp写入; 可以重定向 6.int sprintf(char buf,const char format,...) 说明:根据format格式化数据,并输出到buf, 返回值:成功,返回输出字符数;错误,返回负数

(完整版)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.C语言中形参的缺省存储类别是__A___。 A.自动(auto) B.静态(static) C.寄存器(register) D.外部(extern) 2.已知 struct sk { int a; float b; }data,*p; 若有p=&data; 则对data中成员a的正确引用是__B__。 A.(*p).data B.(*p).a C.p->data.a D.p.data.a 3.以下对C语言函数的描述中,正确的是__A__。 A.C程序由一个或一个以上的函数组成 B.C函数既可以嵌套定义又可以递归调用 C.函数必须有返回值,否则不能使用函数 D.C程序中调用关系的所有函数必须放在同一个程序文件中 4.以下说法中正确的是__C_。 A.C语言程序总是从第一个定义的函数开始执行 B.在C语言程序中,要调用的函数必须在main()函数中定义 C.C语言程序总是从main()函数开始执行 D.C语言程序中的main()函数必须放在程序的开始部分 5.设有以下说明语句: struct stu { int a; float b; }stutype ; 则下面的叙述不正确的是__C。 A.struct是定义结构体类型的关键字 B.struct stu是用户定义的结构体类型 C.stutype是用户定义的结构体类型 D.a和b都是结构体成员名 6.以下不正确的描述是__D。 A.在函数外部定义的变量是全局变量 B.在函数内部定义的变量是局部变量。 C.函数的形参是局部变量 D.局部变量不能与全局变量同名 7.已知学生记录描述为: struct student { int no; char name[20]; char sex; struct

国家二级C语言公共基础知识要点及历年真题

1算法 1.1 算法的基本概念 1.算法的概念(必记): 算法是指解题方案的准确而完整的描述。 分析:要用计算机实现某一任务时,先应设计出一整套解决问题的指导方案,然后具体实现。整套的指导方 案称之为算法,而具体的实现称之为程序。并且在设计指导方案时,可不用过多考虑到实现程序的具体细节(即可以一点点的理想化),但在程序实现时,必须受到具体环境的约束(现实不同于理想)。 结论:算法不等于程序,也不等于计算方法,程序的编制不可能优于算法的设计。 2.算法的基本特征(必记): a.可行性:由于算法总是在某个特定的计算工具上实现并执行的,因而受到计算工具的限制,所以在设计算法时,要考虑到设计的算法是否是可性的。 b.确定性:算法中的每一个步骤都必须是有明确定义的,不允许有模棱两可的解释,也不允许有多义性。 c.有穷性:算法必须能在有限的时间内做完,即算法必须能在执行有限个步骤之后终止。 d.拥有足够的情报:算法有相应的初始数据。 3.算法的基本要素: 一个算法通常由两个基本要素所组成:一是对数据对象的运算和操作,二是算法的控制结构。 基本运算和操作分为四类: a. 算术运算: (加、减、乘、除等运算) b. 逻辑运算: (与、或、非等运算) c. 关系运算: (大于、小于、等于、不等于等运算) d. 数据传输: (赋值、输入、输出等操作) 算法的控制结构: 算法中各操作之间的执行顺序称之为算法的控制结构。一个算法一般都可以用顺序、选择、循环三种基本控 制结构组合而成。 注意:一个计算机系统能执行的所有指令的集合,称为该计算机系统的指令系统。 4.算法设计基本方法: 列举法、归纳法、递推、递归、减半递推技术、回溯法。 1.2 算法的复杂度 (必记) 算法的复杂度主要包括时间复杂度和空间复杂度。 1.算法的时间复杂度: 是指执行算法所需要的计算工作量,是由算法所执行的基本运算次数来度量。 可用平均性态和最坏情况两种分析方法。其中平均性态分析是指用各种特定输入下的基本运算次数的加权平 均值来度量算法的工作量;而最坏情况分析是指在所有特定输入下的基本运算次数据的最大次数。 2.算法的空间复杂度: 一个算法的空间复杂度,是指执行这个算法所需要的内存空间。包含有三部分所组成:算法程序所占的空间 +输入的初始数据所占的存储空间+算法执行过程中所需要的额外空间。 历届的考题: 1、算法具有五个特性,以下选项中不属于算法特性的是(______) [2005.4] A)有穷性B)简洁性C)可行性D)确定性 2、问题处理方案的正确而完整的描述称为______。[2005.4] 3、下列叙述中正确的是________。[2006.9] A)一个算法的空间复杂度大,则其时间复杂度也必定大

C语言常用函数手册

1.分类函数,所在函数库为ctype.h int isalpha(int ch) 若ch是字母('A'-'Z','a'-'z')返回非0值,否则返回0 int isalnum(int ch) 若ch是字母('A'-'Z','a'-'z')或数字('0'-'9'),返回非0值,否则返回0 int isascii(int ch) 若ch是字符(ASCII码中的0-127)返回非0值,否则返回0 int iscntrl(int ch) 若ch是作废字符(0x7F)或普通控制字符(0x00-0x1F) 返回非0值,否则返回0 int isdigit(int ch) 若ch是数字('0'-'9')返回非0值,否则返回0 int isgraph(int ch) 若ch是可打印字符(不含空格)(0x21-0x7E)返回非0值,否则返回0 int islower(int ch) 若ch是小写字母('a'-'z')返回非0值,否则返回0 int isprint(int ch) 若ch是可打印字符(含空格)(0x20-0x7E)返回非0值,否则返回0 int ispunct(int ch) 若ch是标点字符(0x00-0x1F)返回非0值,否则返回0 int isspace(int ch) 若ch是空格(' '),水平制表符('\t'),回车符('\r'), 走纸换行('\f'),垂直制表符('\v'),换行符('\n') 返回非0值,否则返回0 int isupper(int ch) 若ch是大写字母('A'-'Z')返回非0值,否则返回0 int isxdigit(int ch) 若ch是16进制数('0'-'9','A'-'F','a'-'f')返回非0值, 否则返回0 int tolower(int ch) 若ch是大写字母('A'-'Z')返回相应的小写字母('a'-'z') int toupper(int ch) 若ch是小写字母('a'-'z')返回相应的大写字母('A'-'Z') 2.数学函数,所在函数库为math.h、stdlib.h、string.h、float.h int abs(int i) 返回整型参数i的绝对值 double cabs(struct complex znum) 返回复数znum的绝对值 double fabs(double x) 返回双精度参数x的绝对值 long labs(long n) 返回长整型参数n的绝对值 double exp(double x) 返回指数函数ex的值 double frexp(double value,int *eptr) 返回value=x*2n中x的值,n存贮在eptr中double ldexp(double value,int exp); 返回value*2exp的值 double log(double x) 返回logex的值 double log10(double x) 返回log10x的值 double pow(double x,double y) 返回xy的值 double pow10(int p) 返回10p的值 double sqrt(double x) 返回+√x的值 double acos(double x) 返回x的反余弦cos-1(x)值,x为弧度 double asin(double x) 返回x的反正弦sin-1(x)值,x为弧度 double atan(double x) 返回x的反正切tan-1(x)值,x为弧度 double atan2(double y,double x) 返回y/x的反正切tan-1(x)值,y的x为弧度double cos(double x) 返回x的余弦cos(x)值,x为弧度 double sin(double x) 返回x的正弦sin(x)值,x为弧度 double tan(double x) 返回x的正切tan(x)值,x为弧度 double cosh(double x) 返回x的双曲余弦cosh(x)值,x为弧度 double sinh(double x) 返回x的双曲正弦sinh(x)值,x为弧度

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)

C语言程序设计习题与解答 题解1 绪论 习题 一、选择题 1.一个完整的可运行的C源程序中(B )。 A.可以有一个或多个主函数B.必须有且仅有一个主函数 C.可以没有主函数D.必须有主函数和其他函数 2.构成C语言源程序的基本单位是(D )。 A.子程序B.过程C.文本D.函数 3.某C程序由一个主函数main( )和一个自定义函数max( )组成,则该程序( D )。 A.总是从max( )函数开始执行B.写在前面的函数先开始执行 C.写在后面的函数先开始执行D.总是从main( )函数开始执行 4.C语言规定,一个C源程序的主函数名必须为(C )。 A.program B.include C.main D.function 5.下列说法正确的是(C)。 A.在书写C语言源程序时,每个语句以逗号结束 B.注释时,'/'和'*'号间可以有空格 C.无论注释内容的多少,在对程序编译时都被忽略 D.C程序每行只能写一个语句 6.C语言源程序文件的后缀是( C ),经过Compile后,生成文件的后缀是( A ),经过Build后,生成文件 的后缀是(B)。 A..obj B..exe C..c D..doc 7.Visual C++ IDE的编辑窗口的主要功能是(A ),输出窗口的主要功能是(D ),调试器(Debug)的主要功能是(C)。 A.建立并修改程序B.将C源程序编译成目标程序 C.跟踪分析程序的执行D.显示编译结果信息(如语法错误等) 8.在Visual C++ 开发环境下,C程序按工程(project)进行组织,每个工程可包括(D)C/CPP源文件,但只能有( A )main函数。 A.1个B.2个 C.3个D.1个以上(含1个) 9.调试程序时,如果某个语句后少了一个分号,调试时会提示错误,这种情况一般称之为(A )。而某个“计算2的平方”的程序在 调试时没有提示出错,而且成功执行并计算出了结果,只是结果等于5,这种情况一般称之为(D)。 A.语法错误B.正常情况 C.编译器出错D.逻辑设计错误

相关文档