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

c语言复习资料2

c语言复习资料2
c语言复习资料2

1、C语言源程序文件名的后缀是(.c),经过编译后,生成文件的后缀是(.obj ),经过连接后,生成文件的后缀是(.exe )

2、以下选项中正确的整形常量是(b )

A) 12. b)-20 c)1,000 d)4 5 6

3. 以下选项中正确的实型常量是(b d )

a) 0 b)3.1415 c)0.329X102 d).871

4. 以下选项中不正确的实型常量是( b )

a)2.607E-1 b)0.8103e 2 c)-77.77 d)456e-2

5.以下选项中不合法的用户标识符是(A)

a) abc.c b)file d)Main d)PRINTF

6.若变量已正确定义并赋值,符合C语言语法的表达式是(b )

a)a=a+7; b)a=7+b+c,a++

c)int(12.3%4) d)a=a+7=c+b

7.不合法的八进制是( b )

a) 0 b)028 c)077 d)01

8.不合法的十六进制是(a )

a) oxff b)0xabc c)0x11 d)0x19

9.若有定义:long k; 则能使k得到32800的赋值表达式是(c )

a) k=328*100 b)k=32700+200

c)k=328,k*=100 d)k=30000+2800

10.若k为int整形变量且赋值11,请写出运算k++后表达式的值( 11 ),和变量k的值( 12 )

11.若x为double型变量,请写出运算x=3.2,++x后,表达式的值( 4.2 )和变量x的值( 4.2 )

12.函数体由符号({ }开始,用符号()结束。函数体的前面是(定义变量)部分,其后是(语句执行)部分

13.在c语言程序中,用关键字( int )定义基本整形变量,用关键字( float )定义单精度实型变量,用关键字( double )定义双精度实型变量。

14.把a1、a2定义成单精度实型变量,并赋初值1的定义语句是(int a1=1,a2=1; )

15.C语言定义的变量代表内存中的一个(内存单元)

16.表达式:3.5+1/2的计算结果是( 3.5 )

17.表达式s=10应当读作(把10赋值给s )

18.在c语言中,十进制数30的八进制表示形式是(036 ),十六进制表示形式是(0x1E)

在内存中它的二进制表示形式是( 00011110

19。合法的c语言赋值语句是( d )

a)a=b=58 b)k=int(a+b) c)a=58,b=58 d)--i;

20.若变量已正确说明为int类型,要从键盘给a,b,c输入数据,正确的输入语句是( d )

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

21.若变量已正确说明为float类型,要通过输入语句:scanf("%f%f%f",&a,&b,&c);

给a赋予10.0、b赋予22.0、c赋予33.0,以下不正确的输入形式是( b )

a) 10 b)10.0,22.0,33.0 c)10.0 d) 10 22

22 22.0 33.0 33

33

22.若变量已正确定义,要将a和b中的数进行交换,下面选项中不正确的语句组是( c )

a) a=a+b,b=a-b,a=a-b; b)t=a,a=b,b=t;

c)a=t;t=b;b=a; d)t=b;b=a;a=t;

23.若有以下程序段:

int a=0,b=0,c=0;

c=(a-=a-5),(a=b,b+3);

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

其输出结果是( b )

a) 3,0,-10 b)0,0,5 c)-10,3,-10 d)3,0,3

24.设a、b和c都是int型变量,且a=3,b=4,c=5;则以下的表达式中,值为0的表达式是( d )

a) a&&b b)a<=b c)a||b+c&&b-c d)!((a

25.以下程序:

main( )

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

if(a

if(b<0) c=0;

else c+=1;

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

}

其输出结果是 c

a) 0 b) 1 c)2 d)3

26.以下程序:

main()

{ int a,b,s;

scanf("%d%d",&a,&b);

s=a;

if(a

s*=s;

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

}

从键盘上输入3和4,则输出结果是( b )

a) 14 b)16 c)18 d)20

27.若a和b均是正整形变量,正确的switch语句是( d )

a) switch(pow(a,2)+pow(b,2)) (注:调用求幂的数学函数)

{case 1: case 3: y=a+b; break;

case 0: case 5: y=a-b;

}

b)switch(a*a+b*b);

{ case 3:

case 1: y=a+b;break;

case 0: y=b-a;break;

}

c)switch a

{default: x=a+b;

case 10: y=a-b;break;

case 11: x=a*d;break;

}

d)switch (a+b)

{case 10:x=a+b;break;

case 11:y=a-b;break;

}

28. c语言中用( 1 )表示逻辑值“真”,用( 0)表示逻辑值“假”

29. 请写出以下程序的输出结果( 1 )

main()

{ int a=100;

if(a>100) printf("%d\n",a>100);

else printf("%d\n",a<=100);

30.当a=1,b=2,c=3时,以下语句执行后,a、b、c中的值分别为( 3 ),( 2),( 2 ) if(a>c)

b=a;a=c;c=b;

31.若变量已正确定义,以下语句段的输出结果是( *# )

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

switch(x)

{case 0: switch(y==2)

{case 1:printf("*");break;

case 2:printf("%");break;

}

case 1: switch(z)

{ case 1:printf("$");

case 2:printf("*");break;

default:printf("#");

}

}

32.以上程序段:( d)

int k,j,s;

for(k=2;k<6;k++,k++)

{ s=1;

for(j=k;j<6;j++) s+=j;

}

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

其输出结果是

a) 9 b)1 c)11 d)10

33. 以下程序段:?

int i,j,m=0;

for(i=1;i<=15;i+=4)

for(j=3;j<=19;j+=4) m++;

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

其输出结果是

a) 12 b)15 c)20 d)25

34.以下程序段:

int n=10;

while(n>7)

{ n--;

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

}

其输出结果是( b )

a)10 b)9 c)10 d)9

9 8 9 8

8 7 8 7

7 6

35.以下程序段:

int x=3;

do

{ printf(“%3d”,x-=2; )

while(!(--x));

其输出结果是( c )

a) 1 b)3 0 c)1 -2 d)死循环36以下程序:

main( )

{ int y=10;

for(; y>0;y--)

if(y%3==0)

{printf(“%d”,--y); continue;}

}

其输出结果是( b )

a) 741 b)852 c)963 d)875421

37 若x是int型变量,以下程序段:

for(x=3;x<6;x++)

printf((x%2)?(“**%d”):(“##%d\n”),x);

其输出结果是( d )

a)**3 b)##3 c)##3 d)**3##4

##4 **4 **4##5 **5

**5 ##5

38.以下程序:

main( )

{ int I;

for(I=1;I<=5;I++)

{ if(I%2) printf(“*”);

else continue;

printf(“#”);

}

printf(“$);

}

其输出结果是( a )

a) *#*#*#$ b)#*#*#*$ c)*#*#$ d)#*#*$

39. 以下程序:

main()

{ int x, I;

for(I=1;I<=100;I++)

{ x=I;

if(++x%2==0)

if(++x%3==0)

if(++x%7==0)

printf(“%d”,x);

}

printf(“\n”);

}

其输出结果是( d)

a)39 81 b)42 84 c)26 68 d)28 70 40.当执行以下程序段后,I的值是( 5),j的值是( 4 ),k的值是( 6)int a,b,c,d,I,j,k;

a=10;b=c=d=5; I=j=k=0;

for(;a>b;++b) I++;

while(a>++c) j++;

do k++; while(a>d++);

41.以下程序段的输出结果是(死循环)

int k,n,m;

n=10; m=1;k=1;

while(k<=n) m*=2;

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

42.以下程序的输出结果是( -1)

main( )

{ int x=2;

while(x--);

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

}

43.以下程序段的输出结果是( 11 )

int I=0,sun=1;

do { sun+=I++; } while(I<5);

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

44.以下程序的功能是:从键盘上输入若干学生的成绩,统计并输出最高成绩和最低成绩,当输入负数时结束输入。请填空。

Main( )

{ float x,amax,amin;

scanf(“%f”,&x);

amax=x;amin=x;

while( 【1】 ) /* x>0 */

{ if(x>amax) amax=x;

if( 【2】) amin=x; /* x

scanf(“%f”,&x);

}

printf(“\namax=%f\naming=%f\n”,amax,amin);

45.编写程序,打印以下图形:

*

* * *

* * * * *

* * * * * * *

* * * * *

* * *

*

C语言概述练习题

选择题

1.一个C程序的执行是从 A 。

A) 本程序的main函数开始,到main函数结束

B) 本程序文件的第一个函数开始,到本程序文件的最后一个函数结束

C) 本程序文件的第一个函数开始,到本程序main函数结束

D) 本程序的main函数开始,到本程序文件的最后一个函数结束2.以下叙述不正确的是 D 。

A) 一个C源程序必须包含一个main函数

B) 一个C源程序可由一个或多个函数组成

C) C程序的基本组成单位是函数

D) 在C程序中,注释说明只能位于一条语句的后面

3.以下叙述正确的是 C 。

A) 在对一个C程序进行编译的过程中,可发现注释中的拼写错误

B) 在C程序中,main函数必须位于程序的最前面

C) C语言本身没有输入输出语句

D) C程序的每行中只能写一条语句

4.一个C语言程序是由 B 。

A)一个主程序和若干个子程序组成

B) 函数组成

C) 若干过程组成

D) 若干子程序组成

数据类型、运算符与表达式

(一)选择题

1.若x、i、j、k都是int型变量,则计算下面表达式后,x的值为 C 。 x=(i=4,j=16,k=32)

A) 4 B) 16 C) 32 D) 52

2.下列四组选项中,均不是C语言关键字的选项是 A 。

A) define IF type

B) getc char printf

C) include case scanf

D) while go pow

3.下列四组选项中,均是不合法的用户标识符的选项是 B 。

A) W P_0 do

B) b-a goto int

C) float la0 _A

D) -123 abc TEMP

5.下面正确的字符常量是 D 。

A) “c”B) ‘\\’’C) ‘’D) ‘K’

6.以下叙述不正确的是 D 。

A) 在C程序中,逗号运算符的优先级最低

B) 在C程序中,MAX和max是两个不同的变量

C) 若a和b类型相同,在计算了赋值表达式a=b后,b中的值将放入a中,

二b中的值不变

D) 当从键盘输入数据时,对于整型变量只能输入整型数值,对于实型变量只

能输入实型数值

(二)填空题

1.若有以下定义,则计算表达式y+=y-=m*=y后的y值是【-16】。

int m=5,y=2;

2. 在C语言中,一个int型数据在内存中占2个字节,则int型数据的取值范围为【-32768-+32767】。

3.若s是int型变量,且s=6,则下面表达式的值为【3】。

s%2+(s+1)%2

4. 若a是int型变量,则下面表达式的值为【4】。

(a=4*5,a*2),a+6

5.若x和a均是int型变量,则计算表达式(1)后的x值为【5】,计算表达式(2)后的x 值为【6】。

(1) x=(a=4,6*2)

(2) x=a=4,6*2

6. 若a是int型变量,则计算下面表达式后a的值为【7】。

A=25/3%3

7.若x和n均是int型变量,且x和n的初值均为5,则计算表达式后x的值为【8】,n的值为【9】。

x+=n++

8. 若有定义:char c=‘\010’;则变量c中包含的字符个数为【10】。

9.若有定义:int x=3,y=2;float a=2.5,b=3.5;则下面表达式的值为【11】

(x+y)%2+(int)a/(int)b

10. 已知字母a的ASCII码为十进制数97,且设ch为字符型变量,则表达式ch=

‘a’+‘8’-‘3’的值为【12】。

简单的C程序设计

(一)选择题

1. putchar函数可以向终端输出一个 D 。

A) 整型变量表达式 B) 实型变量值

C) 字符串 D) 字符或字符型变量值

2. printf函数中用到格式符%5s,其中数字5表示输出的字符串占用5列。如果字符串长度大于5,则输出按方式 B ;如果字符串长度小于5,则输出按方式 C 。

A) 从左起输出该字符串,右补空格B) 按原字符长从左向右全部输出

C) 右对齐输出该字符串,左补空格D) 输出错误信息

3.阅读以下程序,当输入数据的形式为:25,13,10(注:表示回车),则正确的输出结果为 D 。

main()

{ int x,y,z;

scanf(“%d%d%d”,&x,&y,&z);

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

}

A) x+y+z=48 B) x+y+z=35 C) x+z=35 D) 不确定值

(二)填空题

1. 有一输入语句scanf(“%d”,k);则不能使float类型变量k得到正确数值的

原因是【8】和【9】。

逻辑运算与判断选取控制

(一)选择题

1.逻辑运算符两侧运算对象三数据类型 D 。

A) 只能是0和1 B) 只能是0或非0正数

C) 只能是整型或字符型数据 D) 可以是任何类型的数据

2.判断char型变量ch是否为大写字母的正确表达式是 C 。

A) ‘A’<=ch<=‘Z’ B) (ch>=‘A’)&(ch<=‘Z’)

C) (ch>=‘A’)&&(ch<=‘Z’) D) (‘A’<= ch)AND(‘Z’>= ch)

4.设有:int a=1,b=2,c=3,d=4,m=2,n=2;执行(m=a>b)&&(n=c>d)后n的值为

B 。

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

5.以下程序的运行结果是 B 。

main()

{ int a,b,d=241;

a=d/100%9;

b=(-1)&&(-1);

printf(“%d,%d”,a,b);

}

A) 6,1 B) 2,1 C) 6,0 D) 2,0

6.已知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 (二)编程题

1.编程实现:输入整数a和b,若a2+b2大于100,则输出a2+b2百位以上的数字,否则输出两数之和。

2. 编程判断输入的正整数是是否既是5又是7的整倍数。若是,则输出yes;否则输出no。

2. 编程求出园的面积和周长

3. 编程实现:

{ -1 (x<0)

y = { 0 (x=0)

{ 1 (X>0)

4.用switch语句编一程序,对于给定的一个百分制成绩,输出相应的五分制成绩,设:90分以上为‘A’,80~89分为‘B’,70~79分为‘C’,60~69分为‘D’,60分以下为‘E’

循环控制

(一)选择题

1.设有程序段

int k=10;

while(k=0)k=k-1;

这下面描述中正确的是___C______.

a)while循环执行10次 b)循环是无限循环

c)循环体语句一次也不执行 d)循环体语句执行一次

3.下面程序段的运行结果是______C____.

int n=0;

while(n++<=2);printf("%d",n);

a)2 b)3 c)4 d)有语法错

4.下面程序的运行结果是__C__.

#include

main()

{

int num=0;

while(num<=2)

{

num++;

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

}

}

a)1 b)1 c)1 d)1

2 2 2

3 3

4

(二)、填空题

1.下面程序段是从键盘输入的字符中统计数字字符的个数,用换行符结束循环。请填空。

int n=0,c;

c=getchar();

while(_(c!=’\n’___)

{

if(_(c>=’0’)&&(c<=’9’____)n++;

c=getchar();

}

3.下面程序的运行结果是__s=254_______.

#include

main()

{int a,s,n,count;

a=2;s=0;n=1;count=1;

while(count<=7){n=n*a;s=s+n;++count;}

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

}

5.下面程序段的运行结果是_______.

i=1;s=3;

do{s+=i++;

if(s%7==0)continue;

else ++i;

}while(s<15);

printf("%d",i);

3.当从键盘输入20并回车后,下面程序的运行结果是10010

main()

{int x,y,a[8],j,u,v;

scanf(“%d”,&x);

y=x; i=0;

do

{u=y/2;

a[i]=y%2;

i++;y=u;

}while(y>=1);

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

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

}

}

5.以下程序的功能是:从键盘上输入若干学生的成绩,统计并输出最高成绩和最低成绩,当输入负数时结束输入。请填空。

Main( )

{ float x,amax,amin;

scanf(“%f”,&x);

amax=x;amin=x;

while( 【1】 ) 【1】 x>0 { if(x>amax) amax=x;

if( 【2】) amin=x; 【1】 x

}

printf(“\namax=%f\naming=%f\n”,amax,amin);

以下程序的运行结果是 5 10 9

#include

f(int a[])

{ int I=0;

while (a[I]<=10)

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

I++;}

}

main()

{ int a[]={1,5,10,9,11,7};

f(a+1);

}

以下程序的功能是:通过指针操作,找出三个整数中的最小值并输出。请填空。

#include “stdlib.h”

main()

{ int *a, *b, *c, num, x, y,x;

a=&x; b=&y; c=&z;

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

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

num=*a;

if(*a>*b) num=*b ;

if(num>*c) num=*c ;

printf(“ the min number is : %d\n”,num);

}

以下程序将数组a中的数据按逆序存放.请填空.

#define M 8

main()

{ int a[M], I, j, t;

for(I=0;I

I=0; j=M-1;

while( I

{ t=*(a+I); * (a+I)= *(a+j); *(a+j)=t;

I++;j--;

}

for(I=0;I

}

2.下面程序以每行4个数据的形式输出a数组,请填空。

#define N 20

main()

{int a[N],i;

for(i=0;i

for(i=0;i

{if (_i%4==0____________) __printf(“\n”);___________ printf("%3d",a[i]);

}

printf("\n");

}

3. 下面程序可求出矩阵a的主对角线上的元素之和,请填空。

main()

{int a[3][3]={1,3,5,7,9,11,13,15,17},sum=0,i,j;

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

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

if(_i==j____)sum=sum+_a[i][j]______;

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

}

数组

1.以下为一维整型数组a的正确说明是____d_____.

a)int a(10); b)int n=10,a[n];

c)int n; d)#define SIZE 10;

scanf("%d",&n); int a[SIZE];

int a[n];

2.以下对二维数组a的正确说明是___c_____.

a)int a[3][]; b)float a(3,4);

c)double a[1][4] d)float a(3)(4);

3.若二维数组a有m列,则计算任一元素a[i][j]在数组中位置的公式为___d___.

(假设a[0][0]位于数组的第一个位置上。)

a)i*m+j b)j*m+i c)i*m+j-1 d)i*m+j+1

4.若二维数组a有m列,则在a[i][j]前的元素个数为____b____.

a)j*m+i b)i*m+j c)i*m+j-1 d)i*m+j+1

二、填空题

1.若有定义:double x[3][5];则x数组中行下标的下限为____0_____,列下标的上限为___4______.

2.下面程序以每行4个数据的形式输出a数组,请填空。

#define N 20

main()

{int a[N],i;

for(i=0;i

for(i=0;i

{if (__i&4==0___________) __printf(“\n”);___________ printf("%3d",a[i]);

}

printf("\n");

}

3. 下面程序可求出矩阵a的主对角线上的元素之和,请填空。

main()

{int a[3][3]={1,3,5,7,9,11,13,15,17},sum=0,i,j;

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

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

if(_i==j____)sum=sum+__a[i][j]_____;

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

}

4. 当从键盘输入18并回车后,下面程序的运行结果是___10010_____. main()

{int x,y,i,a[8],j,u,v;

scanf("%d",&x);

y=x;i=0;

do

{u=y/2;

a[i]=y%2;

i++;y=u;

}while(y>=1)

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

printf("%d",a[j]);

函数

一、选择题

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.C语言规定,简单变量做实参时,它和对应形参之间的数据传递方式为__b____.

A)地址传递

B)单向值传递

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

D)由用户指定传递方式

4.C语言允许函数值类型缺省定义,此时该函数值隐含的类型是____b__.

a)float

b)int

c)long

d)double

二、填空题

1.以下程序的运行结果是__max is 2___.

#include

main()

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

c=max(a,b);

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

}

max(int x,int y)

{int x;

z=(x>y)?x:y;

return(z);

}

3.以下程序的运行结果是__A+B=4______. int a=5;int b=7;

main()

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

c=plus(a,b);

printf("A+B=%d\n",c);

}

plus(int x,int y)

{int z;

z=x+y;

return(x);

}

22.以下程序的正确运行结果是(A )

#include

void num()

{ extern int x,y;

int a =25,b=20;

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) 5, 45 B) 不确定C)5,25 D)1,12

23.以下程序的正确运行结果是( D )

#include

main()

{ int k=6,m=2,p;

p=func(k,m); printf(“%d,”,p);

p=func(k,m); printf(“%d\n”,p);

}

func( int a, int b)

{ static int m=0,I=2;

I+=m+1;

m=I+a+b;

return(m);

}

A) 8,17 B)8,16 C) 8,20 D)11,23

24.已有定义int k=2; int *ptr1, *ptr2; 且ptr1 和ptr2均已指向变量k, 下面不能正确执行的赋

值语句是 B

A)k=*ptr1+*ptr2; B) ptr2=k;

C) ptr1=ptr2; D) k=*ptr1*(*ptr2);

25.下面程序应能对两个整型变量的值进行交换。以下正确的说法是(D )

main()

{ int a=10, b=20;

printf(“(1)a=%d,b=%d\n”,a,b);

swap(&a,&b);

printf(“(2) a=%d,b=%d\n”,a,b);

}

swap(int p, int q)

{ int t;

t=p;p=q;q=t;}

A.该程序完全正确

B.该程序有错,只要将语句swap(&a,&b); 中的参数改为a, b即可

C.该程序有错,只要将swap() 函数中的形参p 和q以及t均定义为指针即可

D.以上说法都不正确

6.若有以下定义和语句,在程序中引用数组元素x[i]的四种形式是:p[i] ,

*(x+i),

*(p+i) 和x[i] (假设i已正确说明并赋值)。

int x[10], *p; p=x;

三、程序填空题(20分)

1.下面程序的功能是从键盘输入的一组字符中统计出大写字母的个数m和小写字

母的个数

n,并输出m、n中的较大者,请选择填空。

#include

main()

{ int m=0,n=0;

char c;

while((c=getchar())!=’\n’)

{ if(c>=’A’&&c<=’Z’) 【1】; 【1】m++;

if(c>=’a’&&c<=’z’) n++;

}

printf(“%d\n”,m

}

5.以下程序的功能是:从键盘上输入若干学生的成绩,统计并输出最高成绩和最

低成绩,当输入负数时结束输入。请填空。

Main( )

{ float x,amax,amin;

scanf(“%f”,&x);

amax=x;amin=x;

while( 【1】 ) 【1】 x>0

{ if(x>amax) amax=x;

if( 【2】) amin=x; 【1】 x

scanf(“%f”,&x);

}

printf(“\namax=%f\naming=%f\n”,amax,amin);

以下程序的功能是:通过指针操作,找出三个整数中的最小值并输出。请填空。

#include “stdlib.h”

main()

{ int *a, *b, *c, num, x, y,x;

a=&x; b=&y; c=&z;

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

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

num=*a;

if(*a>*b) num=*b ;

if(num>*c) num=*c ;

printf(“ the min number is : %d\n”,num);

}

以下程序将数组a中的数据按逆序存放.请填空. #define M 8

main()

{ int a[M], I, j, t;

for(I=0;I

I=0; j=M-1;

while( I

{ t=*(a+I); * (a+I)= *(a+j); *(a+j)=t;

I++;j--;

}

for(I=0;I

}

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.逻辑设计错误

相关文档