='a')||(cC.('a'=c)D.(c>='a')&&(c以下符合C语言语法的" />

C语言复习题 (2)

有以下程序

#include

void main()

{ int a=1,b=2,m=0,n=0,k;

k=(n=b>a)||(m=a

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

}

程序运行后的输出结果是__C___。

A、0,0

B、0,1

C、1,0

D、1,1 若变量c为char类型,能正确判断出c为小写字母的表达式是__D_____。

A. 'a'<=c<='z'

B. (c>='a')||(c<='z')

C. ('a'<=c)and('z'>=c)

D. (c>='a')&&(c<='z')

以下符合C语言语法的实型常量是__C____。

A、1.2E0.5

B、3.14159E

C、5E-3

D、E15 若变量已正确定义,有以下程序段

i=0;

do

printf("%d, ",i);

while(i++);

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

其输出结果是____B__。

A. 0,0

B. 0,1

C. 1,1

D. 程序进入无限循环

若有以下程序段,

int c1=1 ,c2=2,c3;

c3=1.0/c2*c1;

则执行后,c3中的值是____A__。

A、0

B、0.5

C、1

D、2 以下选项中合法的字符常量是__B____。

A、"B"

B、'\010'

C、68

D、D 有以下程序

main()

{ char a,b,c,d;

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

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

}

若运行时从键盘上输入:6,5,65,66↙。则输出结果是___A___。

A)6,5,A,B B)6,5,65,66

C)6,5,6,5 D)6,5,6,6

以下4个选项,不能看作一条语句的是____B__。

A、{;}

B、a=0,b=0,c=0;

C、if(a>0);

D、if(b==0)m=1;n=2;

以下能正确定义二维数组的是____D__。

A、int a[][3];

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

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

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

有定义int a[10];且数组元素都已被赋值,以下都能将10个数组元素值依次写入文件,除了_____C______。

A.fwrite(a,sizeof(int),10,fp)

B.fwrite(a,sizeof(int),1,fp)

C.fwrite(a,10*sizeof(int),1,fp)

D.for(i=0;i<10;i++) fwrite(a,sizeof(int),1,fp);

有以下程序

#include

void main()

{ int a=1,b;

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

{ if(a>=8) break;

if(a%2==1){a+=5;continue;}

a-=3;

}

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

}

程序运行后的输出结果是__B____。

A、3

B、4

C、5

D、6

下列选项中,合法的C语言关键字是___D___。

A、V AR

B、cher

C、integer

D、default

有如下程序

#include

void main()

{ int x=1,a=0,b=0;

switch(x){

case 0: b++;

case 1: a++;

case 2: a++;b++;

}

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

}

该程序的输出结果是__A____。

A、a=2,b=1

B、a=1,b=1

C、a=1,b=0

D、a=2,b=2

下列叙述错误的是___A___。

A、一个C语言程序只能实现一种算法

B、C程序可以由多个程序文件组成

C、C程序可以由一个或多个函数组成

D、一个C函数可以单独作为一个C程序文件存在

以下能正确定义且赋初值的语句是__B____。

A)int b1=b2=10;

B)char b=32;

C)float f=f+1.1;

D)double x=12.3E2.5;

有以下程序

main()

{ int a,b,d=25;

a=d/10%9;

b=a&&(-1);

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

}

程序运行后的输出结果是__B____。

A、6,1

B、2,1

C、6,0

D、2,0

以下叙述中错误的是__D____。

A)C程序中的#include和#define行均不是C语句

B)除逗号运算符外,赋值运算符的优先级最低

C)C程序中,j++;是赋值语句

D)C程序中,+、-、*、/、%号是算术运算符,可用于整型和实型数的运算

若变量已正确定义,则以下语句的输出结果是___B___。

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

A、-1

B、0

C、1

D、32

以下程序

#define f(x) x*x

void main()

{ int i;

i=f(4+4)/f(2+2);

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

}

执行后输出结果是_____A_____。

A.28

B. 22

C.16

D.4

有以下程序

#include

#define N 5

#define M N+1

#define f(x) (x*M)

main()

{ int i1,i2;

i1=f(2);

i2=f(1+1);

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

}

程序的运行结果是__B____。

A、12 12

B、11 7

C、11 11

D、12 7

若函数为float型,变量z为int型,该函数体内有语句return(z);则该函数返回的值是______B________。

A、int型

B、float型

C、编译出错

D、不确定

以下能正确定义且赋初值的语句是__B____。

A)int a1=a2=10;

B)char c=97;

C)float f=f+1.1;

D)double x=12.3E-2.5;

下面这个程序段的输出是(B )

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

if(a>c) a=b;b=c;c=a;

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

A. a=1 b=2 c=1

B. a=1 b=3 c=1

C. a=2 b=3 c=1

D. a=2 b=3 c=2

有以下程序

#define P 3

void F(int x){return(P*x*x);}

main()

{printf("%d\n",F(3+5));}

程序运行后的输出结果是___D___。

A、192

B、29

C、25

D、编译出错以下程序运行后的输出结果是__A____。

main()

{ int k=5;

while(--k) printf("%d",k-=3);

printf("\n");

}

A)1 B)2 C)4 D)死循环

以下能正确定义且赋初值的语句是【 B 】。

A)int n1=n2=10;

B)char c=99;

C)float f=f+1.1;

D)double x=12.3E2.5;

以下定义语句中正确的是__C____。

A、char a='A'b='B';

B、float a=b=10.0;

C、int a=10,*b=&a;

D、float *a,b=&a;

以下的for循环:( D )

for(x=0,y=0;(y!=123)&&(x<5);x++);

A)是无限循环 B)循环次数不定 C)执行4次 D)执行5次下列关于do…while语句和while语句的叙述中错误的是__C____。

A)do…while语句先执行循环中的语句,然后再判断表达式

B)while语句是先进行条件判断,满足条件才去执行循环体

C)while语句至少要执行一次循环语句

D)do…while循环至少要执行一次循环语句

如果n为整型,以下while循环执行___D___次。

#include

Void main()

{

int n;

n=2;

while(n==0)

printf("%d",n);

n--;

printf("\n");

printf("%d",n);

}

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

以下程序执行后输出结果是【 A 】。

main()

{ char s[]="\n\t1234";

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

}

A)赋初值的字符串有错 B)6,7 C)5,6 D)6,6

不能把字符串:Welcome!赋给数组b的语句是___B___。

A)char b[10]={'W','e','l','c','0', ,'m','e''!',0};

B)char b[10]={ 'w','e','l','c','0', ,'m','e''!',0};

C)char b[10];strcpy(b," Welcome!");

D)char b[10]=" Welcome!";

以下数组定义中不正确的是__A____。

A)int a[1][3];

B)int b[][3]={1,1,2};

C)int c[3][3]={1};

D)int d[3][]={{1,2},{1,2,3},{1,2,3,4}};

下列函数定义中,会出现编译错误的是__C____。

A)max(int x,int y,int *z) B)int max(int x,int y) {*z=x>y x:y;} { int z;

z=x>y x:y;

return z;}

C)max(int x,y) D)int max(int x,int y)

{ int z; { return(x>yx:y); } z=x>yx:y; return(z);}

不能把字符串:Hello!赋给数组b的语句是【 B 】。

A)char b[10]={'H','e','l','l','o','!',0};

B)char b[10]={'h','e','l','l','o','!',0};

C)char b[10];strcpy(b,"Hello!");

D)char b[10]="Hello!";

如下程序的执行结果是__B____。

int runc(int a,int b)

{

return(a+b);

}

main()

{ int x=2,y=3,z=4,r;

r=runc(runc(x,y),z);

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

}

A、3

B、9

C、5

D、4

设ch是char型变量,其值为A,且有下面的表达式

ch=(ch>='A'&&ch<='Z')(ch+32):ch

上面表达式的值是__B____。

A、A

B、a

C、Z

D、z

以下选项中合法的字符常量是__B____。

A、"B"

B、'\010'

C、68

D、D

若有以下程序

#include

void f(int n);

main()

{ void f(int n);

f(5);

}

void f(int n)

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

则以下叙述中不正确的是___C___。

A、若只在主函数中对函数f进行说明,则只能在主函数中正确调用函数f

B、若在主函数前对函数f进行说明,则在主函数和其后的其它函数中都可以正确调用函数f

C、对于以上函数程序,编译时系统会提示出错信息;提示对f函数重复说明

D、函数f无返回值,所以可用void将其类型定义为无值型

请选出可用做C语言用户标识符的一组标识符__B____。

① void ② a3_b3 ③ For ④ 2a

define _12A _abc DO

WORD NO case sizeof

A)① B)② C)③ D)④

若变量已正确定义,有以下程序段

i=0;

do

printf("%d, ",i);

while(i++);

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

其输出结果是__B____。

A. 0,0

B. 0,1

C. 1,1

D. 程序进入无限循环

以下叙述中错误的是___D___。

A)C程序中的#include和#define行均不是C语句

B)除逗号运算符外,赋值运算符的优先级最低

C)C程序中,j++;是赋值语句

D)C程序中,+、-、*、/、%号是算术运算符,可用于整型和实型数的运算

有定义语句:int x,y;。若要通过scanf("%d,%d",&x,&y);语句使变量x得到数值11,变量y

得到数值12,下面四组输入形式中,错误的是__A____。

A、11 12↙

B、11,12↙

C、11, 12↙

D、11,↙12↙

x=2;

do

{x=x*x-3;

}while(!x);

以下说法正确的是( A )

A)循环体将执行一次 B)循环体将执行两次

C)循环体将执行无限次 D)系统将提示有语法错误

设int a=12,则执行完语句a+=a-=a*a后,a的值是__D____。

A、552

B、264

C、144

D、-264

下面程序段的运行结果是___D_ ___。

char a[8]="student";

char b[4]="BCD";

strcpy(a,b);

printf("%s",a);

A)student B)ABCdent C)BCD D)studentABC

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

main()

{ int a=2,b=3,c=4,d=5;

if(a>b)

if(b>c)

printf("%d",d++ +1);

else

printf("%d",++d +1);

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

}

A)5 B)6 C) 7 D) 8

下列关于do…while语句和while语句的叙述中错误的是__C____。

A)do…while语句先执行循环中的语句,然后再判断表达式

B)while语句是先进行条件判断,满足条件才去执行循环体

C)while语句至少要执行一次循环语句

D)do…while循环至少要执行一次循环语句

不能把字符串:Students!赋给数组b的语句是__B____。

A)char b[10]={'S','t','u','d', 'e','n','t','s','!',0};

B)char b[10]={ 's','t','u','d', 'e','n','t','s','!',0};

C)char b[10];strcpy(b," Students!");

D)char b[10]=" Students!";

在函数调用过程中,如果函数funA调用了函数funA,则__C____。

A)称为函数的直接递归调用 B)称为函数的间接递归调用

C)称为函数的循环调用 D)C语言中不允许这样的递归调用

以下程序的输出结果是__C____。

fun(int x,int y,int z)

{ z=x*x+y*y;}

main( )

{ int a=9;

fun(5,2,a);

printf("%d",a);

}

A) 0 B) 29 C) 9 D) 3

有以下程序段

int n,t=1,s=0;

scanf("%d",&n);

do{ s=s+t; t=t-2; }while (t!=n);

为使此程序段不陷入死循环,从键盘输入的数据应该是__D____。

A、任意正奇数

B、任意负偶数

C、任意正偶数

D、任意负奇数

若函数为int型,变量z为float型,该函数体内有语句return(z);则该函数返回的值是【A】。

A、int型

B、float型

C、编译出错

D、不确定

如果n为整型,以下while循环执行___C___次。

#include

main()

{

int n;

n=2;

while(n==2)

printf("%d",n);

n--;

printf("\n");

printf("%d",n);

}

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

执行以下程序段时 A

x=-1;

do

{x=x*x;

}while(x);

A)循环体将执行一次B)循环体将执行两次

C)循环体将执行无限次D)系统将提示有语法错误

以下程序的输出结果是 C

fun(int x,int y,int z)

{ z=x*x+y*y;}

main( )

{ int a=12;

fun(5,4,a);

printf("%d",a);

}

A) 0 B) 41 C) 12 D) 3

设ch是char型变量,其值为B,且有下面的表达式

ch=(ch>='B'&&ch<='Z')(ch+32):ch

上面表达式的值是___B___。

A、B

B、b

C、Z

D、z

以下选项中合法的字符常量是__B____。

A、"B"

B、'\010'

C、68

D、D

22、下面程序段的运行结果是___D____。

char a[8]="student";

char b[4]="ABC";

strcpy(a,b);

printf("%s",a);

A)student B)ABCdent C)ABC D)studentABC

以下程序的输出结果是___100___。

void main()

{ int **k,*a,b=100;

a=&b; k=&a;

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

}

已定义char ch='$';int i=1,j;,执行j=!ch&&i++以后,i的值为__1____。

执行以下程序后的输出结果是___24___。

main()

{ int a=20;

a+=4;

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

}

若要在变量char b[20]中输入字符串:“abc xyz”正确的输入语句是___grts(b)___ 以下程序的功能是计算:s=1+12+123+1234+12345。请填空。

main()

{ int t=0,s=0,i;

for(i=1;i<=5;i++) {

t=i+___10*t___;

s=s+t;

}

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

}

若有如下定义:

int a[10];

int *p1=a, *p2=&a[5];

p1=a;

则p2-p1的值是:【】。

有以下程序

main()

{ char ch[]="uvwxyz",*pc;

pc=ch; printf("%c\n",*(pc+5));

}

程序运行后的输出结果是__z____。

#include

main()

{ int i, n[4]={1};

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

{ n[i]=n[i-1]*2+1; printf("%d ",n[i]); }

}

所得结果为(3 7 15):

12、下列函数定义中,会出现编译错误的是___B___。

A)a(int x,int y,int *z) B)int a(int x,y) {*z=x>y x:y;} { int z;

z=x>y x:y;

return z;}

C)a(int x,int y) D)int a(int x,int y) { int z; { return(x>yx:y); } z=x>yx:y; return(z);}

设有定义语句:int a[][3]={{0},{1},{2}};则数组元素a[2][1]的值是__0___。:0

以下程序的功能是调用函数fun计算:m=1-2+3-4+…+9-10,并输出结果。请填空。int fun ( int n)

{ int m=0,f=1,i;

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

{ m+=i*f;

f=-f;

}

return m;

}

main()

{ printf("m=%d\n",_____fun(10)_______);}

若有定义int a[10];则数组a中第四个元素是:______a[3]________。:

执行下列程序段后,x和i的值分别是___10___和___6___。

int x,i;

for (i=1,x=1;i<=50;i++)

{ if(x>=10) break;

if(x%2==1){x+=5;continue;}

x-=3;

}

main()

{ int x=0210; printf("%X\n",x);

}

所得结果为:(88)

下面程序的运行结果是:__3 , 5____。

void swap(int *a,int *b)

{int *t;

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

}

main()

{int x=3,y=5,*p=&x,*q=&y;

swap(p,q);

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

}

设有定义语句:int a[][3]={{0},{1},{2}};,则数组元素a[2][1]的值是_0__。

下列程序的输出结果是__5 , 3____。

main()

{ int a=3,b=5;

a=a+b;b=a-b;a=a-b;

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

}

以下程序的功能是:输出a、b、c三个变量中的最小值,请填空。

#include

main()

{ int a,b,c,t1,t2;

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

t1=a

t2=c

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

}

以下程序的功能是:输出a、b、c三个变量中的最大值,请填空。

#include

main()

{ int a,b,c,t1,t2;

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

t1=a

t2=c

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

}

在函数调用过程中,如果函数funA调用了函数 funB,函数funB又调用了函数funA,则:fun(A)与fun(B) 为函数的间接递归调用

函数fun的功能是计算x n。

double fun(double x, int n)

{

int i;

double y = 1;

for(i = 1; i <= n; i++) y = y * x;

return y;

}

主函数中已经正确定义m、a、b变量并赋值,并调用fun函数计算:m=(a+b)3。实现这一计算的函数调用语句为__m=fun(a+b,3) ___。

在函数调用过程中,如果函数funA调用了函数 funB,函数funB又调用了函数funA,则fun(A)与fun(B)称为函数的间接递归调用

有72块砖,共72人搬,成年男子一次搬3块砖,成年女子一次搬2块砖,儿童两人抬1块砖,恰好一次全部搬完,编程求出成年男子、成年女子和儿童各有多少人。

#include

void main()

{

int a,b,c;

for (a=0;a<=24;a++)

for (b=0;b<=36;b++)

{

c=72-a-b;

if (a*3+b*2+c/2.0==72)

printf("成年男子有:%d人,成年女子有:%d人,儿童有:%d人

\n",a,b,c);

}

}

编写程序,输入三角形的边长,求三角形的面积并输出。

#include

#include

void main()

{

float a,b,c,s,m;

printf("请分别输入三角形三边的边长a,b,c:\n");

scanf("%f %f %f",&a,&b,&c);

s=(a+b+c)/2;

m=sqrt(s*(s-a)*(s-b)*(s-c));

printf("该三角形的面积为:%f\n",m);

}

编写求圆面积函数,并调用此函数求从键盘输入半径的圆的面积。

#include

float a(float r)

{

if (r<0)

printf("半径输入错误!");

else return(3.14*r*r);

}

main()

{

float r;

printf("请输入圆的半径:");

scanf("%f",&r);

printf("半径为%f的圆,面积为%f\n",r,a(r));

}

编写程序,输入三个整数,按从大到小的顺序输出。

#include

void main()

{

int a,b,c,t;

printf("请输入三个整数a,b,c:\n");

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

if(a

{

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

}

if(a

{

t=a;a=c;c=t;

}

if(b

{

t=b;b=c;c=t;

}

printf("三个整按从大到小的顺序数为: %d,%d,%d\n",a,b,c); }

请编程实现打印如下所示的三角形.

11

222

3333

44444

555555

6666666

77777777

8

9

#include

void main()

{

int i,j;

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

{

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

{

printf("%d",i);

}

printf("\n");

}

}

按顺序读入10名学生的4门课程的成绩,计算每位学生的平均分并输出

#include

void main()

{

int n,k;

float a,b,c;

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

{

printf("\n请输入第%d名同学的成绩:",n);

b=0.0;

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

{

scanf("%f",&a);

b+=a;

}

c=b/4;

printf("第%d名同学的平均成绩为:%f",n,c);

}

}

有一函数

写一程序,输入x的值,调用函数运算后输出y值。

#include

float y(float x)

{

if(x<1)

return(x);

if(1<=x<10)

return(2*x-1);

if(x>=10)

return(3*x-11);

}

main()

{

float x;

printf("请输入x的值:");

scanf("%f",&x);

printf("y的值为%f:\n",y(x));

}

设计一个函数IsPrime()来验证一个自然数是否是素数,并用主函数实现从键盘输入一个整

数,并调用该函数判断是否为素数。请写出完整代码。

#include

float a(int n)

{

int i;

if (n<2)

return (0);

for(i=2;i

if(n%i==0)

return (0);

return (1);

}

void main()

{

int i;

printf("请随意输入一个整数:");

scanf("%d",&i);

if(a(i))

printf("该整数为素数\n");

else

printf("该整数不是素数\n");

}

编程用数组的方式在屏幕上显示以下形式的数据。(10分) #include

void main()

{

int a[5][5],i,j;

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

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

{

if (i+j==4) a[i][j]=1;

if (i+j>4) a[i][j]=2;

if (i+j<4) a[i][j]=0;

}

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

{

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

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

printf("\n");

}

}

C语言复习题 (2)

一、选择题 1. 在每个C 程序中都必须包含有这样一个函数,该函数的函数名为 A 。 A. main B. MAIN C. name D. function 2. 在以下关于C 语言的注释的叙述中,不正确的是 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. 语句的构成不一定需要分号 D. 语句的书写对程序的运行不起作用,因此可以随便写都可以 7. 以下各标识符中,合法的用户标识符组为 D 。 A. PAd ,P#d ,b -b ,abc ,_0123,ssiped B. cin ,a10,CPP ,float ,del_word ,signed C. void ,max ,hiy ,,list ,*jer 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);

c语言试题及答案 (2)

C语言部分 一、选择题(每小题2分,共10分) (下在各小题,分别有一个或多个正确答案,请将所有正确答案的编号,填写在该小题题干后的括号内。错选或漏选均不得分)。 1、若定义:int a[2][3]{0,2,4,6,8,10};以下描述正确的有( A,C,D, E ) A、*(a+1)为元素6的地址 这里a+1=a[1]的地址;*(a+1)的值是6,故A正确。 B、*(a[1]+1)的值为2 为8,故B不正确 C、**(a+1)+2的值为8 这里a+1是一个指针,指向的是a[1]. *(a+1)为a[1],a[1]指向的是a[1][0]. **(a+1)为6,加2得8,故C正确; D、a[0]与a相同 因二者都是指针,指针的地址都是指向数组中的第一个元素的地址,故D正确。 E、a[1][2]的值为10 它是指第二行的第三个元素,为10,正确 2、对函数的正确使用方法描述( A,C,D )。 A、用数组做函数参数时,必须在主调函数和被调函数中分别定义数组 B、实参数组元素和形参数组元素类型可以不一致 C、形参数组长度可以不指定 D、形参数组长度可以大于实参数组长度 E、数组名做参数属于值传递 3、对静态变量的正确描述( A,B,D,E ) A、静态局部变量在静态存储区内分配单元() B、静态外部变量可以赋初值,也可以不赋初值 C、静态外部变量的作用与外部变量相同 D、静态局部变量在函数调用结束时,仍保存其值,不会随着消失。 E、静态局部变量只赋一次初值 4、下列描述正确的是( A ,C)。 A、由main 函数及其参数argc和* argv[]可以实现命令行方式 B、使用fclose关闭文件时,先释放文件指针,再写缓冲区数据到文件中 //先写缓冲区数据到文件中,再释放文件指针 C、字符数组并不要求它的最后一个字符是‘\0’ //是的,以字符指针指向的字符串才要求,因为只有这样,才能知道字符串的长度,而在字符数组中,不用\0,一样可以知道到哪里是字符数组的结尾。 D、‘A’和“A”都是字符串常量 E、若char*S=“\ta\017bc”;则指针变量S指向的字符串所占的字节数是7 5、在缓冲文件系统中用于读写的函数有( A,B,D ) A、putchar () B、fread() C、rewind () D、purw() E、fseek() 二、程序阅读,并给出运行结果(共10分,每题5分)。 (1)main() { unsigned a,b,x int n; a=0x763 输出结果:

C语言复习题 (2)

C语言复习题 一、选择题: 1.以下不是C语言的特点的是( B ) A.C语言简洁、紧凑 B.能够编制出功能复杂的程序 C. C语言可以直接对硬件进行操作 D.C语言移植性好 2. 以下不正确的C语言标识符是( D )。 A.ABC B.abc C.a_bc D.ab.c 3.一个c程序的执行是从( A ). A.main( )函数开始,直到main( )函数结束 B.第一个函数开始,直到最后一个函数结束 C.第一个语句开始,直到最后一个语句结束 D.main( )函数开始,直到最后一个函数结束 4.以下不正确的语句(设有int p,q)是( D )。 A.P*=3; B.p/=q; C.p十=3; D.p&&=q 5.下列四组选项中,均不是C语言关键字的选项是( A ). A.define B.getc C.include D.while if char sanf go type printf case pow 6.下面四个选项中,均是合法整形常量的选项是( A ). A.160 B.-0xcdf C.-01 D.-0x48a -0xffff 01a 986,012 2e5 011 0xe 0668 0x 7. 下面四个选项中,均是不合法浮点数的选项是( B ). A.160. B.123 C.-.18 D.-e3 0.12 2e4.2 123e4 0.234 e3 .e5 0.0 1e3 8. 若有代数式3ae/bc,则不正确的C语言表达式是( C ) A.a/b/c*e*3 B.3*a*e/b/c C.3*a*e/b*c D.a*e/c/b*3 9. 若以下变量均是整形,且num=sum=7;则计算表达式sUM=num++,sUM++,++num后sum 的值为(A ). A.7 B.8 C.9 D.10 10.若有定义:int a=7; float x=205 ,y=4.7; 则表达式x+a%3*(int)(x+y)%2/4的值是( A )。 A.2.500000 B.2.750000 C.3.500000 D.0.000000 11. s izeof(float)是( B )。 A.一个双精度型表达式 B. 一个整型表达式 C.一种函数调用 D. 一个不合法的表达式 12. 设int n=3;则n十十的结果是( B )。 A.2 B.3 C.4 D.5 13. 设有说明: char w; int x; float y; double z; 则表达式w*x+z-y值的数据类型为( D )。

C语言程序设计复习题 (2)

C\C++程序设计复习题 一、选择题 1、一个C语言程序总是从( C )开始执行 A) 书写顺序的第一个函数 B) 书写顺序的第一条执行语句 C) 主函数main() D) 不确定 2、以下能正确定义二维数组的是( C ) A.int a[][3]; B.int a[][3]=2{2*3}; C.int a[][3]={}; D.int a[2][3]={{1},{2},{3,4}}; 3、设int x=3,y=4,z=5,则下列表达式中的值为0的是( D ) A) …x?&&?y?B) x||y+z&&y-z C) x<=y D) !((x

A)5 B) 6 D) 7 D 9 9、若有定义,char *p=”computer”; 则语句printf(“%c”,*(p+2))运行结果是( B ) A) 随机值B) m C)o D) omputer 10、有以下程序( D ) main() { int i=0,x=0; for (;;) { if(i==3||i==5) continue; if (i==6) break; i++; s+=i; }; printf("%d\n",s); } 程序运行后的输出结果是 A.10 B.13 C.21 D.程序进入死循环 11、以下定义语句中正确的是( C ) A.char a='A'b='B'; B.float a=b=10.0; C.int a=10,*b=&a; D.float *a,b=&a; 12、设有int x=11;则表达式(x++*l/3)的值为( B )。 (A)3 (B)4 (C)11 (D)12 13、在说明一个结构体变量时系统分配给它的存储空间是( D ) A)该结构体中第一个成员变量所需存储空间B) 该结构体中最后一个成员变量所需存储空间 C)该结构体中占用最大存储空间的成员变量所需存储空间D) 该结构体中所有成员变量所需存储空间的总和

C语言复习题 (2)

有以下程序 #include void main() { int a=1,b=2,m=0,n=0,k; k=(n=b>a)||(m=a='a')||(c<='z') C. ('a'<=c)and('z'>=c) D. (c>='a')&&(c<='z') 以下符合C语言语法的实型常量是__C____。 A、1.2E0.5 B、3.14159E C、5E-3 D、E15 若变量已正确定义,有以下程序段 i=0; do printf("%d, ",i); while(i++); printf("%d\n",i); 其输出结果是____B__。 A. 0,0 B. 0,1 C. 1,1 D. 程序进入无限循环 若有以下程序段, int c1=1 ,c2=2,c3; c3=1.0/c2*c1; 则执行后,c3中的值是____A__。 A、0 B、0.5 C、1 D、2 以下选项中合法的字符常量是__B____。 A、"B" B、'\010' C、68 D、D 有以下程序 main() { char a,b,c,d; scanf("%c,%c,%d,%d",&a,&b,&c,&d); printf("%c,%c,%c,%c\n",a,b,c,d); } 若运行时从键盘上输入:6,5,65,66↙。则输出结果是___A___。 A)6,5,A,B B)6,5,65,66 C)6,5,6,5 D)6,5,6,6 以下4个选项,不能看作一条语句的是____B__。 A、{;} B、a=0,b=0,c=0; C、if(a>0); D、if(b==0)m=1;n=2; 以下能正确定义二维数组的是____D__。 A、int a[][3]; B、int a[][3]={2*3};

c语言题库2(计算机二级)

一、选择题 1. 在C语言中,不合法的实型常量是()。 A. -0.123 B. -.123 C. -1.23e-1 D. -123e-3.0 2. 设有说明语句int i,j;,则表达式i>=j||i

C语言复习题2练习(输入输出)(有答案)

一、选择题 1. 以下程序的运行结果是。 #include int main( ) { int m=5, n=10; printf(“%d, %d\n”,m++, --n); return 0; } A.5,9 B.6,9 C.5,10 D.6,10 2. 有定义语句int a,b; ,若要通过语句scanf(“%d, %d”, &a, &b); 使变量a得到数值6,变量b得到数值5,下面形式中错误的是。(注:□代表空格)A.6,5<回车> B.6,□□5<回车> C.6 5<回车> D.6,<回车> 5<回车> 3. 以下程序的输出结果是。(注:□代表空格) #include int main( ) { printf(“\n*s1=%15s*”, “chinabeijing” ); pirntf(“\n*s2=%-5s*”, “chi”); return 0; } A.*s1=chinabeijing□□□*B.*s1=chinabeijing□□□* *s2=**chi* *s2=chi□□* C.*s1=*□□chinabeijing* D.*s1=□□□chinabeijing* *s2=□□chi* *s2=chi□□* 4. 已有如下定义语句和输入语句,若要求a1, a2, c1, c2的值分别为10、20、A 和B,当从第一列开始输入数据时,正确的数据输入方式是。(注:□代表空格) int a1,a2; char c1, c2; scanf(“%d%c%d%c”,&a1,&c1,&a2,&c2); A.10A□20B<回车> B.10□A□20□B<回车> C.10□A□20B<回车>D.10A20□B<回车> 5. 已有定义int x; float y; 且执行scanf(“%3d%f”, &x,&y); 语句,若从第一列开始输入数据12345□678<回车>,则x的值为(1),y的值为(2)。(注:□代表空格)

C语言基础题及答案2

C语言基础题及答案2 第一单元程序设计和C语言 一、选择题 1.C语言的基本构成单位是:AA.函数 B.函数和过程 C.超文本过程 D.子程序 2.一个C语言程序总是从B开始执行。A.主过程B.主函数C.子程序D.主程序3.C语言的程序一行写不下时,可以D A.用逗号换行 B.用分号换行 C.在任意一空格处换行 D.用回车符换行4.以下叙述不正确的是:C A.在C程序中,语句之间必须要用分号\;\分隔 B.若a是实型变量,C程序中a=10是正确的,因为实型变量中允许存放整型数 C.在C程序中,无论是整数还是实数都能正确无误地表示 D.在C程序中,%是只能用于整数运算的运算符5.以下不正确的C语言标识符是D A.ABC B.abc C.a_bc D.ab.c6.下列字符串是标识符的是:A._HJ B.9_tudent C.long D.LINE1

7.以下说法中正确的是:CA.C语言程序总是从第一个定义的函数开始执行 B.在C语言程序中,要调用的函数必须放在main()函数中定义 C.C 语言程序总是从main()函数开始执行 D.C语言程序中的main()函数必须放在程序的开始部分8.不合法的常量是:BA.\\2 B.\\ C.3 D.\\483 9.已知各变量的类型说明如下,则以下不符合C语言语法的表达式是: intk,a,b;unignedlongw=5;double某=1.422; A.某%(-3) B.W+=-210.11. 若有定义:inta=7;float某=2.5;y=4.7; 则表达式某+a%3某(int)(某+y)%2/4的值是:A C.k=(a=2,b=3,a+b) D.a+=a=+(b=4)某(a=3) 在C语言中,字符型数据在内存中以D形式存放。 A.原码 B.BCD码 C.反码 D.ASCII码 A.2.50000012. B.2.750000 C.3.500000 D.0.000000

c语言复习题(1~6章) (2)

注意:超纲题不需要做! 1、C语言提供合法的数据类型关键字是( ) A)Double B)short C)integer D)Char 2、对于下列各字符串,请选取择正确的标识符( )。 A)Boo B)for C)5abc D)I like C 3、下列不属于字符型常量的是() A)‘A’B)“B”C)‘\n’ D)‘D’ 4、下面四个选项中,均是正确的八进制数或十六进制数的选项是。 A)-10 0x8f -011 B) 010 -0x11 0xf1 C) 0abc -017 0xc D) 0a12 -0x123 -0xa 5、若有定义:int a = 7; float x = 2.5 , y = 4.7 ; 则表达式x + a % 3 * (int) (x + y) % 2/4 的值是 A) 2.750000 B) 0.00000 C) 3.500000 6、已知ch是字符型变量,下面不正确的赋值语句是。 A)ch = 5 + 9; B) ch= ' a + b '; C) ch = ' \ 0 '; D) ch= '7' + '6'; 7、错误的转义字符是 ( ) A)'\091' B)'\\' C)'\0' D)'\'' 8、设int a,b,c;执行表达式a=b=1,a++,b+1,c=a+b--后,a,b和c的值分别是 ( ) A)2,1,2 B)2,0,3 C)2,2,3 D)2,1,3 9、在C语言中,错误的常数是 ( ) A)1E+0.0 B)5. C)0xaf D)0L 10、下列正确的标识符是: A)12ab B)float C)aw~1e D)b6ty 11、对y在[3,23]和[100,200]范围内为真的确表达式为: A)(y>=3)&&(y<=23)&&(y>=100)&&(y<=200) B)(y>=3)||(y<=23)||(y>=100)||(y<=200) C)(y>=3)&&(y<=23)||(y>=100)&&(y<=200) D)(y>=3)||(y<=23)&&(y>=100)||(y<=200) 12、在一个C程序中 A)main函数必须出现在所有函数之前B)main函数可以在任何地方出现 C)main函数必须出现在所有函数之后D)main函数必须出现在固定位置 13、8以下能正确地定义整型变量a,b和c并为其赋初值5的语句是 A)int a=b=c=5;B)int a,b,c=5;C)int a=5,b=5,c=5;D)a=c=b=5; 14、C语言中,long类型的数据占字节数为() A) 1 B) 2 C) 4D) 8 15、下列为合法的用户标识符为() A) _98B) P#d C) a* D) void 16、如果x为float类型变量,则以下语句输出为() x=213.82631; printf(“%4.2\n”,x); A) 宽度不够,不能输出B) 213.82 C) 213.82631 D) 213.83 17、在C语言中,合法的字符常量是( ) A)'\084' B)'\x43' C)'ab' D)"\0" 18、不能正确表示ab除以cd的C语言表达式是() A) a*b/c*d B) a/(c*d)*b C)a*b/c/d D) a*b/(c*d) 19、以下不符合C语言语法的赋值语句是(D)

C语言练习2

一、单项选择题。(每题4分,共60分) 1. 下列正确的C语言标识符是()。 A. 3a B. number-1 C. 姓名 D. stu_1 标准答案:D 2. 程序中的预处理命令是指以()字符开头的命令。 A. @ B. # C. $ D. % 标准答案:B 3. 若int a,b; float x,y;,则(int)(x+a)/y+a/b 的类型是()。 A、int B、float C、double D、long double 标准答案:B 4. 空白符是()符的统称。 A. 空格、制表、回车 B. 空格、制表、逗号 C. 空格、回车、分号 D. 冒号、制表、回车 标准答案:A 5. 以下字符常量中,正确的是()。 A、"A" B、"\0" C、'123' D、'\012' 标准答案:D 6. 若x=-12,且x/=2-x%3,则x=()。 A、-1 B、1 C、-6 D、6 标准答案:C 7. 以下程序段中内循环体的执行次数为()。 int i,j; i=-5; while (++i) for (j=0;j>i;j--) {…} A、20 B、15 C、10 D、5 标准答案:C 8. 以下常数中正确的一组是()。 A、018,123,0x123 B、-017,2a0,-0x16 C、012,-100,0xabc D、0a7,789,0xff 标准答案:C 9. 一个函数定义由()两部分组成。 A. 函数头和函数体 B. 函数头和函数尾 C. 函数原型和函数体 D. 函数名和参数表 标准答案:A 10. 以下程序段的执行结果是()。 int a=1,b=2,c=3; printf("%d\n",a>=c-b?a= =c-b?a:b:c); A、0 B、1 C、2 D、3 标准答案:B 11. 在VC状态下,为运行一个程序而建立的工作区文件的扩展名为()。 A. obj B. exe C. dsw D. Dsp 标准答案:C 12. 一个程序中必须有并且只有一个命名为()的函数。 A. Main B. main C. void D. intmain

C语言习题集2

C语言习题集 一、单项选择题 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;

C语言程序设计+复习题库 (2)

一、填空 1.break语句通常用于switch//循环中。 2.C语言对数组下标的引用一般从0开始。 3.C语言中,一个函数一般由两个部分组成,它们是函数首部和函数 体。 4.C标准库函数中,字符串的处理函数包含在string.h头文件中, 数学函数包含在math.h头文件中。 5.C程序的运行需要经过编译和链接两步进行。 6.C程序中用/**/括起来的内容是程序的注释语句。 7.C语言函数是由函数首部和函数体两部分组成。其中,函数首部包 括函数类型、函数名和函数参数。 8.C语言提供的三种逻辑运算符是&,//,!。 9.C语言源程序经过编译后,生成文件的后缀名是.c。 10.C语言源程序经过连接后,生成文件的后缀名是.exe。 11.C语言中,关系表达式和逻辑表达式的值是1//0。 12.C语言中的标识符只能由三种字符组成,他们是字母,数字, 下划线。 13.C语言中的每条基本语句以;作为结束符,每条复合语句以}

作为结束符。 14.C语言中函数返回值的类型是由函数类型决定的。 15.C源程序的基本单位是函数。 16.inta=2,b=3;表达式a>b?a++:++b的值为4。 17.intx=1,y=1,z=1;x+=y+=z;则表达式xb>c的值是0。 19.定义一个指针p,它指向一个有6个整型元素的一维数组, 定义语句为int*p=a[6];。 20.定义一个指针数组p,它有4个元素,每个指针指向一个整 型数据,定义语句为int*p[4];。 21.赋值语句是由=加上一个分号构成。 22.构成数组的各个元素必须具有相同的类型。 23.关系表达式x+y>5的相反表达式为x+y!>5。 24.函数strlen("1234\0xy")的值为:9。 25.函数的形参在未被调用前不分配空间,函数形参的数据类型 要和实参相同。 26.函数体用{开始,用}结束。

C语言各章节复习题(带答案) 2

一、C语言概述练习题 选择 1.一个C程序的执行是从。 A) 本程序的main函数开始,到main函数结束 B) 本程序文件的第一个函数开始,到本程序文件的最后一个函数结束 C) 本程序文件的第一个函数开始,到本程序main函数结束 D) 本程序的main函数开始,到本程序文件的最后一个函数结束 2.以下叙述不正确的是。 A) 一个C源程序必须包含一个main函数 B)一个C源程序可由一个或多个函数组成 C) C程序的基本组成单位是函数 D) 在C程序中,注释说明只能位于一条语句的后面 3.以下叙述正确的是。 A) 在对一个C程序进行编译的过程中,可发现注释中的拼写错误 B) 在C程序中,main函数必须位于程序的最前面 C) C语言本身没有输入输出语句 D) C程序的每行中只能写一条语句4.一个C语言程序是由。 A)一个主程序和若干个子程序组成B) 函数组成 C) 若干过程组成 D) 若干子程序组成 5.计算机高级语言程序的运行方法有编译执行和解释执行两种,以下叙述中正确的是。 A) C语言程序仅可以编译执行B) C语言程序仅可以解释执行 C) C语言程序既可以编译执行又可以解释执行D) 以上说法都不对 6.以下叙述中错误的是。

A) C语言的可执行程序是由一系列机器指令构成的B)用C语言编写的源程序不能直接在计算机上运行 C)通过编译得到的二进制目标程序需要连接才可以运行 D)在没有安装C语言集成开发环境的机器上不能运行C源程序生成的.exe文件 7.以下叙述正确的是。 A) C语言程序是由过程和函数组成的B) C语言函数可以嵌套调用,例如: fun(fun(x)) C) C语言函数不可以单独编译 D) C语言中除了main函数,其他函数不可作为单独文件形式存在 二、数据类型、运算符与表达式 选择. 1.若x、i、j、k都是int型变量,则计算下面表达式后,x的值为 x=(i=4,j=16,k=32) A) 4 B) 16 C) 32D) 52 2.下列四组选项中,均不是C语言关键字的选项是。 A)define IF type B)getc char printf C)include case scanf D)while go pow 3.下列四组选项中,均是不合法的用户标识符的选项是。 A) W P_0 do B) b-a goto int C) float la0 _A D) -123 abc TEMP 4.下列四组选项中,均是合法转义字符的选项是。 A)‘\”’‘\\’‘\n’ B)‘\’‘\017’‘\”’ C)‘\018’‘\f’‘xab’D)‘\\0’‘\101’‘xlf’ 5.下面不正确的字符常量是。 A) “c”B) ‘\\’’C) ‘’D) ‘K’ 6.以下叙述不正确的是。

C语言课程的复习题2(选择题)

第六章指针 601.若有以下定义和语句: doubler=99,*p=&r; *p=r; 则以下正确的叙述是 A)以上两处的*p含义相同,都说明给指针变量p赋值 B)在“doubler=99,*p=&r;”中,把r的地址赋值给了p所指的存储单元 C)语句“*p=r;”把变量r的值赋给指针变量p D)语句“*p=r;”取变量r的值放回r中 答案:D 602.以下程序执行后,a的值是 mian() {inta,k=4,m=6,*p1=&k,*p2=&m; a=p1==&m; printf(“%d\n”,a);} A)4 B)1 C)0 D)运行时出错,无定值 答案:c 603.下面关于指针的正确叙述是 A)指针就是计算机中用来定位的一种硬件B)指针变量与普通内存变量一样 C)所谓指针实际上就是内存地址 D)因为内存地址一直存在,所以不论是否定义指针变量,指针变量都一直存在604.下面能正确进行字符串赋值操作的语句是 A)chars[5]={“ABCDE”}; B)chars[5]={‘A’、’B’、’C’、’D’、’E’}; C)char*s;s=”ABCDEF”; D)char*s;scanf(“%s”,s); 答案:c 605.设有如下一段程序: int*var,ab; ab=100; var=&ab; ab=*var+10; 执行上面程序段后,ab的值为 A)120 B)110 C)100 D)90 答案:B 606.若x是整型变量,pb是基类型为整型的指针变量,则正确的赋值表达式是 A)pb=&x B)pb=x C)*pb=&x D)*pb=*x 答案:A 607.设有如下程序: #include main() {int**k,*j,i=100; j=&i;k=&j; printf(“%d\n”,**k);} 上述程序的输出结果是 A)运行错误 B)100 C)i的地址 D)j的地址 答案:B 608.若有定义:inta[10],*p=a;则p+5表示 A)元素a[5]的地址 B)元素a[5]的值 C)元素a[6]的地址 D)元素a[6]的值 答案:A 609.若已定义:inta[9],*p=a;并在以后的语句中未改变p的值,不能表示a[1]地址的表达式是 A)p+1 B)a+1 C)&a[1] D)p 答案:D 610.若有定义:inta[10];则数组a中首元素的地址可表示为 A)a B)a+1 C)&a D)&a[1] 答案:A

C语言 习题二 参考答案

第二章:C程序的基本结构 一、单项选择题 1、以下不是C语言的特点的是________。 A)语言的表达能力B)语言定义严格 C)数据结构系统化 D)控制流程结构化 2、TC编译系统提供了对C程序的编辑、编译、连接和运行环境,以下可以不在该环境下进行的环节是________。 A)编辑和编译 B)编译和连接 C)连接和运行D)编辑和运行 3、以下不是二进制代码文件是________。 A)标准库文件 B)目标文件C)源程序文件 D)可执行文件 4、下面个选项组中,均属于C语言关键字的一组是________。 A)auto,enum,include B)switch,typedef,continue C)signed,union,scanf D)if,struct,type 5、下面四组字符串中,都可以用作C语言标识符的是________。 A)print B)I \am C)signed D)if _maf scanf 3mf ty_pr mx_2d mx_ a.f x1# aMb6 AMB A&B 5XY 6、以下不属于流程控制语句的是_________。 A)表达式语句 B)选择语句 C)循环语句 D)转移语句 7、下面描述中,不正确的是________。 A)C语言的函数体由一系列语句和注释组成。 B)注释内容不能单独写在一行上。 C)C程序的函数说明部分包括对函数名、函数类型、形式参数等的定义和说明。 D)scanf和printf是标准库函数而不是输入和输出语句。 8、下面描述中,正确的是________。 A)主函数的花括号必须有,而子函数中的花括号是可有可无的。 B)一个C程序行只能写一个语句。 C)主函数是程序启动时的唯一入口。 D)函数体包含了函数说明部分。 二、填空题 1、一个完整的C程序至少要有一个________函数。(主函数) 2、标准库函数不是C语言本身的组成部分,它是由__________提供的功能函数。(编译系统) 3、C语言是以________为基本单位、整个程序由________组成。(函数函数) 4、常用的标准库函数有数学函数、字符函数和字符串函数、动态分配函数、随机函数和________函数等几个大类。(输入输出) 5、标准库函数存放在________文件中。(函数库) 6、目标程序文件的扩展名是________。(.obj) 7、程序连接过程是将目标程序、________或其它目标程序连接装配成可执行文件。(库函数) 8、因为源程序是________类型文件,所以用具有文本编辑功能的任何编辑软件程序完成编辑。(文本)

C语言试题及答案解析(二)

C语言试题及答案解析(二) 班级姓名学号____________ 一、选择题(20分) 1.1966年,Bohra和Jacopini提出的三种基本程序设计结构是:________ A.if、while和for; B. switch、do-while和for; C.while、do-while和for; D.顺序结构、分支结构和循环结构。 2.算法的特征不包括:______。 A.有穷性 B.可行性 C.确定性 D.有1个或者多个输入。 3.C语言源程序的基本组成单位是______。 A.函数 B. 语句 C. 声明和语句 D. 文件 4.下列标识符中,只有______是合法的。 A.if B. 3ab C. Int D. A-4 5.下列常量中,只有______是合法的。 A.3e-0.3 B. ‘abc’ C. 02a1 D. ‘\377’ 6.下列说法中正确的是:______。 A.C语言中的for语句的三个表达式都可以省略,而且分号也可以省略。 B.宏替换比函数调用的执行速度慢。 C.实质上,C语言中的指针就是一个变量的地址。 D.C语言中的任何函数都可以由程序员命名。 7.C语言中,运算对象必须是整型的运算符是_______。 A./ B. % C. + D. - 8.以下叙述中错误的是_______。 A.C语句必须以分号结束

B.复合语句在语法上被看作一条语句 C.空语句出现在任何位置都不会影响程序运行 D.赋值表达式末尾加分号就构成赋值语句 9.以下叙述中正确的是_______。 A.调用printf函数时,必须要有输出项 B.使用putchar函数时,必须在之前包含头文件stdio.h C.在C语言中,整数可以以十二进制、八进制或十六进制的形式输出 D.调用getchar函数读入字符时,可以从键盘上输入字符所对应的ASCII码10.以下关于函数的叙述中正确的是_______。 A.每个函数都可以被其它函数调用(包括main函数) B.每个函数都可以被单独编译 C.每个函数都可以单独运行 D.在一个函数内部可以定义另一个函数 11.有以下程序段 typedef struct NODE{ int num; struct NODE *next; } OLD; 以下叙述中正确的是_______。 A.以上的说明形式非法 B.NODE是一个结构体类型 C.OLD是一个结构体类型 D.OLD是一个结构体变量 12.以下叙述中错误的是_______。 A.C语言中对二进制文件的访问速度比文本文件快 B.C语言中,随机文件以二进制代码形式存储数据 C.语句FILE fp; 定义了一个名为fp的文件指针

C语言习题2

1.C源程序的基本单位是()。 A.子程序 B.函数 C.过程 D.复合语句 2()可求得0到0.99的随机数。P58 A.srand()*100%100 B.rand()%100/100.0 C.rand()%100/100 D.srand()%100/100.0 3整型常量没有()形式。P22 A.十进制 B.二进制 C.十六进制 D.八进制 4若已定义:int i,j,k; double x; 则下列表达式中语法正确的是()。 A.x%5 B.j+2=k C.j+=(k=4)*j D.i=k+2j 5若已定义:int n=10,i=4; 则赋值运算n%=i+1执行后,n的值是()。 A.0 B.2 C.3 D.1 6若已定义:float f; char s[20]; 下列正确的输入语句是()。 A.scanf("%s%f", &s, f); B.scanf("%c%f", s, &f); C.scanf("%s%f", s, f); D.scanf("%s%f", s, &f); 字符数组用字符串。 7能正确表示a和b同时为正或同时为负的逻辑表达式是()。 A. (a>0 && b>0)&&(a<0 && b<0) B.a*b>0 C. (a>0 || b>0)&&(a<0 || b<0) D. (a+b>0) && (a+b<=0) 8若已定义int k=5;float d=3.5; 则表达式d+k%3/2 的值为()。 A.3.5 B.5.5 C.4 D.4.5 9若已定义:int a=-1,b=-3,c=0,d=2; 则表达式ad?b:d)的值是()。 A.-1 B.-3 C.0 D.2 10以下程序段运行后m的值为()。 int i,m=3; for(i=1;i<=3;i++) {m+=1; if(m%2!=0) break; m+=2; } A.9 B.7 C.8 D.6 11以下程序段运行后,c的二进制值是()。 int a=2,b=5,c; c=(a<<2)^b; A.00001101 B.00000100 C.00000001 D.00001100 12给数组a所有元素赋初值0的语句是()。 A.int a[9]=0; B.int a[9]={ }; C.int a[9]=9*0; D.int a[9]={0}; 13以下程序的运行结果是()。 void main( ) {int a[3][3]={0},i,j; for(i=0;i<3;i++) a[i][i]=1; for(i=0;i<3;i++) {for(j=0;j<3;j++) printf("%d ",a[i][j]);

C语言经典考试习题其答案详解 (2)

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) 同一个运算符号在不同的场合可以有不同的含义 【1.8】#include 是 A.编译预处理指令 B.什么都不是 C.函数 D.有语法错误 【1.9】程序编译链接后显示" 0 error,0 warning" 代表 A.程序中有语义错误 B.程序中没有语法错误 C.程序是正确的 D.程序是不正确的 【1.10】关于可执行文件说法正确的是 A.可执行文件是编译链接后生成的文件 B.可执行文件就是main.c文件 C.可执行文件就是源代码文件 D.可执行文件后缀为.obj 【1.11】设有语句“int a = 3;”,执行语句“a += a -= a * a;”后,变量a的值是 A. 3 B. 0 C. -12 D. 9 【1.12】在C程序中如果要使用数学函数,如sin(x),log(x)等,需要在程序中加入的语句是 A. #define B. #define C. #include D. #include 【1.13】C语言中字符型(char)数据在内存中的存储形式是____。 A) 原码B) 补码C) 反码D) ASCII码 【1.14】将字符g赋给字符变量c,正确的表达式是。 A) c=\147 B) c="\147" C) c='\147' D) c='0147' 【1.15】下列转义字符中错误的一个是____。 A) '\000' B) '\0014' C) '\x111' D) '\2' 【1.16】将空格符赋给字符变量c,正确的赋值语句是____。

相关文档
最新文档