文档库 最新最全的文档下载
当前位置:文档库 › C综合练习题

C综合练习题

C综合练习题
C综合练习题

《C语言程序设计》综合练习题

一、单项选择题

1.下列()是字符串比较函数。

A. puts()

B.gets()

C. strcpy ()

D. strcmp()

2.构成一个完整的C源程序必须有且只有一个()。

A. 函数

B.过程

C. 主函数

D. 程序

3. 设有int i,j,k;则表达式i=1,j=2,k=3,i&&j&&k的值为()。

A. 1

B. 2

C. 63

D. 0

4.在C语言中,不同类型数据混合运算时,要先转化成同一类型后进行运算。设一表达式中包含有int、long、unsigned、char类型的变量和数据,则表达式最后的运算结果是()类型数据。

A.int B.char C.unsigned D.long 5.下列()不是构成标识符的字符。

A.字母

B.数字

C.下划线

D.标点符号

6.表达式:3>5&&-1||6<3-!-1的值是()。

A. 0

B.1

C. 表达是不合法

D. 均不对

7. 以下标识符中能做为合法的C用户标识符的是()。

A.A3+B3

B. float

C. 3dx

D. x3d

8. 以下数据中不正确的数值或字符常量是()。

A. 0.0

B. 3E2.7

C. 9861

D. 0xabcd

9. fp=fopen(''test.txt",''r''); 语句中,r对文件处理方式是()。

A. 只读打开文件

B. 只写打开文件

C. 追加打开文件

D. 读写打开文件

10.表示关系x<=y<=z的C语言表达式为()

A. (x<=y)&&(y<=z)

B. (x<=y)and(y<=z)

C. (x<=y)&(y<=z)

D. (x<=y<=z)

11.如果要把常量327存入变量a中,a不能定义的类型是()。

A. int

B. char

C. long

D. float

12. 在变量的存储结构中,()局部变量的初始化只有一次。

A. 自动

B. 静态

C.外部

D. 寄存器

13.下列能正确进行字符串赋值操作的语句是()。

A. char s[5]={ "ABCDE"};

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

C. char *s;s="abcde";

D. char *s; scanf("%s",s);

14.语句if(3/4>1/2)a=1;else a=0; 运行后,a的值是()。

A. 1

B. 0

C.与机器有关

D.语法有错

15.下列()是合法自定义标识符。

A. 3ma

B. float

C. m3a

D.–ab

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

A. 'a' && 'b'

B. a<=b

C. c>=b||b+c&&b-c

D. a<=b+c&&c>=a+b

17.判断整型变量i,j可同时被2整除的表达式(i,j同时被2整除返回1,否则返回

0)是()。

A. !(i%2)||!(j%2)

B. !(i%2)&&!(j%2)

C. (i%2)&&!(j%2)

D. (i%2)||(j%2)

18.若x,y均为double型变量,正确的输入函数调用是()。

A. scanf("%f%f",&x,&y);

B. scanf("%d%d",&x,&y);

C. scanf("%lf%lf",&x,&y);

D. scanf("%lf%lf",x,y);

20.当执行以下程序段时()。

x= -1;

Do {x=x*x;}while(!x);

A. 循环体将执行一次

B. 循环体将执行两次

C. 循环体将执行无限次

D. 系统将提示有语法错误

21.执行下列程序段后,a值为()。

a=1;b=0;

if((a++>++b)?a++;b--) a+=b;

A. 2

B. 3

C. 4

D. 5

22.若x为char型变量,y为int型变量,x,y均有值,正确的输出函数调用是()。

A. printf("%c%c",x,y);

B. printf("%c%s",x,y);

C. printf("%f%c",x,y);

D. printf("%f%d",x,y);

23.假定a和b为int型变量,则执行以下语句后b的值为()。

a=1;b=10

do

{b-=a;a++;

}while (b--<0);

A. 9

B. -2

C. -1

D. 8

24.设有说明语句:int x=43,y=0;char ch='A';,则表达式(x>=y && ch<'b' && !y)的值是()。

A. 0

B. 语法错

C. 1

D. 假

26.下列不正确的转义字符是()。

A.'\\'

B.'\'

C.'074'

D.'\0'

27.已知字符'b'的ASCII码为98,语句printf(''%d,%c'','b','b'+1);的输出为()。

A. 98,b

B. 语句不合法

C. 98,99

D. 98,c

28.下列()说法,是对“int *p;”正确解释。

A.定义p是整型变量

B. 定义p为指向整型变量的指针变量

C. 定义p为数组名

D. 定义p的内容为整型地址

29.以下各组运算符中,优先级最高的运算符是()。

A. < =

B. /

C. ! =

D.& &

31.下列程序段执行后s值为()。

int i=1,s=0;

do{if(!(i%2))continue;s+=i}while(++i<10);

A. 1

B. 45

C. 25

D. 以上均不是

32.若x,y均为int型变量且有值,要输出x,y的值,正确的输出函数调用是()。

A. printf("%d%d",&x,&y);

B. printf("%f%f",x,y);

C. printf("%f%d",x,y);

D. printf("%d%d",x,y);

33.字符串“c program”存放在内存中占用字节数为()。

A. 10

B. 9

C. 11

D. 8

34.下列程序段运行后x的值是()。

A. 14

B. 4

C. 15

D. 3

int al=1,a2=2,a3=3,x=15;

if (!al) x--;

else if (a3) x=3;

else x=4;

35.对于int a,则表达式1<=a<=5值是()。

A. 0

B. 1

C.不定

D. 表达式语法有错

36.变量的存储类型有四种。下列()的存取速度最快。

A.自动变量

B.静态变量

C.外部变量

D.寄存器变量

38.设有以下程序段:

int x=0,s=0;

while(!x!=0) s+=++x;

printf("%d ",s);

则()。

A.运行程序段后输出0

B.运行程序段后输出1

C.程序段中的控制表达式是非法的

D.程序段执行无限次

39.设x和y均为int型变量,则执行以下语句后的输出为()。

x=15;y=5;printf("%d\n",x%=(y%=2));

A. 0

B. 1

C. 6

D. 12

40.已知字母a的码值为十进制97,数字0的码值为十进制48,下面程序的输出是()。

A. 输出无定值

B.e,4

C. 101,52

D. e,52

#include

int main()

{char c1,c2;

c1='a'+'6'-'2';

c2='b'-'a'+'3';

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

return 0;

}

42.假设定义数组:float score[10]; 并且其地址为2000,则元素score[5]的地址为()。

A. 2005

B. 2010

C. 2015

D. 2020

43.假定p所指对象的值为25,P+1所指对象的值为46,则*(++p)的值为()。

A. 26

B. 25

C. 46

D. 47

44.若i为整型变量,则以下循环执行的次数是()。

For(i=2;i==0;)printf(''%d'',i--)

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

45.设C 语言中,一个int 型数据在内存中占2个字符,则unsigned int 型数据的取值范围为( )。

A . 0~255

B . 0~32767

C . 0~65535

D . 0~2147483647 46.已有如下定义和输入语句,若要求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 . 10A20B

D . 10A20 B

47.阅读以下程序,当输入数据的形式为25,13,10正确的输出结果为( )。

#include int main()

{int x,y,z;

scanf("%d%d%d",&x,&y,&z); printf("x+y+z=%d\n", x+y+z); return 0;

}

A . x+y+z= 48

B . x+y+z= 35

C . x+z=35

D .不确定值 48.表示图中坐标轴上阴影部分的正确表达式是( )。(其中a

A. (x<=a)&&(x>=b)&&(x<=c)

B. (x<=a)||(b<=x<=c)

C. (x<=a )||(x>=b)&&(x<=c)

D. (x<=a)&&(b<=x<=c)

二、判断题

1.打开文件的函数是fclose 。( )。

2.局部静态变量是在编译时赋初值的,且只赋初值一次。( ) 3.C 语言中允许使用字符串变量。( ) 4.外部变量必须定义在文件的开头部分。( ) 5.语句while(!E);中的表达式!E 等价于E= =0。( ) 6.实型分类:单精度、双精度和整型。( ) 7.逻辑运算优先级别都低于算术运算。( ) 8.函数的形参在退出该函数后是不可见的。( ) 9.如果在定义函数时省略extern ,则隐含为外部函数。( ) 10.定义二维数组时,第一维长度可以省略。( ) 11.字符'\0'是字符串的结束标记,其ASCII 代码为0。( ) 12.若有int i=10,j=0; 则执行完语句if(j=0)i++;else i--; i 的值为11。( ) 13.continue 语句的作用是提前结束整个循环的执行。( ) 14.Break 语句的作用是提前结束整个循环的执行。( ) 15.在定义函数时的参数是“形式参数”,在调用函数时的参数是“实际参数”。( ) 16.在函数调用时,实参和形参的变量个数可以不一样多。( )

X

17.在函数调用时,实参和形参的变量个数一定要一样多。()

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

19.字符串"china"在内存中占据的存储空间是5个字节。()

21.打开文件的函数是fopen()。

22.若有说明:sratic int a[3][4];则数组a中各元素可在程序的编译阶段得到初值0。()

23.假设定义数组:float score[10];并且其地址为2000,则元素score[5]的地址为2005。()。

24.C语言的基本单位是函数。()

25.已知字符'b'的ASCII码为98,语句printf(''%d,%c'','b','b'+1);的输出为:98,99。()26.从变量的作用域来分,变量可以分为静态变量和动态变量。()

27.若用数组名作为函数调用时的实参,则实际上传递给行参的是数组的第一个元素值。()

28.结构体和数组一样,它们的成员都是相同类型数的集合。()

29.调用strlen("abc\0ef\0g")的返回值为8。()

三、填空题

1.如果希望函数中的局部变量的值在函数调用结束后不消失而继续保留原值,就应该指定它为,用进行声明。

2.结构化程序设计方法中,程序有三种基本结构,即:,和。

3.若int i=8,j=9;float x=123.456;printf(''x=%8.3f,j=%-4d\n'',x,j);结果为:。

4.设C环境下一个int型数据占用2个字节,设int a[4]={1,2,3,4},*p=a;其中a=2000;则*p= ,p+1= ,*(p+2)= 。

5.在C语言中,表示逻辑“假”值用。

6.设C环境下一个int型数据占用2个字节,设int a[5]={5,4,3,2,1},*p=a;其中a=2000;则*p= ,p+3= ,*(p+2)= 。

7.用户定义函数体部分一般分为和两部分。

8.用下列for循环将大写字母逆序输出(即从Z到A),其语句为:

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

9.C语言中函数的参数分为和。

10.用户自己建立的由不同类型数据组成的组合型的数据结构称为类型,它的名字是由一个关键字和组合而成。

11.建立并运行C 程序的最简步骤为_ , 和

12.转义字符“\n”表示。

13.直接或间接调用自身的函数称为函数。

14.int*p和int**p;含义分别是和

15.语句printf("%d%d",123);将输出:。

16.转义字符“\n”表示。

17.C语言中,表示逻辑“真”用:表示,逻辑“假”用:表示。

18.表达式12345==12345/3*3的值为__ __。

19.若有定义:int m=5,y=2;则执行表达式y+=y-=m*=y 后的y 值是 。 20.已知int a=4,b=20,x=3;则:

(1)a+x*(int)(2.5/0.7)的值为: 。 (2)(a+3)/3+a%b 的值为: 。 (3)x*=5+4的值为: 。

21.用数组元素作实参时,向形参变量传递的是 ,而用数组名作函数实参时,向形参传递的是 。

22.int a=10,b=15,c=1,d=2,e=0,则下列表达式的运行结果是: (1) !e

(2) c==b>e

(3) (b==10)&&(a==10)

(4) (a+5==b)||((c=b+a)>(d=c+b))

23.表达式4>10?(5>3?(4,2):3):(6,7)的值为 。 24.在C 语言中,逻辑“真”值用 表示。

25.strcat(ch1,ch2)的功能是: 。 26.strlen("Guangzhou tvu")的值为

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

28.写出i 小于0或大于10时为真的表达式: 。

29.一个函数由两部分组成,即: 和 。

30.数组元素的相关性表现在它们具有相同的 和 。 31.以下程序实现输出x ,y ,z 三个数中的最大者,请在【】内填入正确内容。

#include

int x=4,y=6,z=7;

int 【① 】; if (【② 】)

u=x;

else

u=y;

if (【③ 】)

v=u;

else

v=z;

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

} 32.在C 语言中用 代表“假”,用 代表“真”。但只要 则都认为是“真”。

33.用来引用特定数组元素的数字称为 。 34.一个C 程序总是从 开始执行的。

35.下面程序的功能是用公式62π211≈+221+23

1

+……+21n 求π的近似值,直到最后一

项的值小于106 为止。请填空。

#include

#include

int main()

{

long i=1;

【①】pi=0;

while (i*i<=1e+6)

{pi=【②】; i++; }

pi=sqrt(6.0*pi);

printf("pi=%10.6f/n",pi);

}

36.若所用变量已正确定义,写出下列FOR循环的次数为:。

a=2,b=10;

for (i=b;i>=a;i--,a++)

printf("%3d",i);

37.用下列for循环将大写字母逆序输出(即从Z到A),其语句为:

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

38.一个源文件可以包含一个或者若干个函数。在函数内定义的变量是,而在函数之外定义的变量称为。变量是全局变量。

39.C语言中根据数据的组织形式,可以将文件分为和。

40.要把一个外部变量只限制于被本文件使用,而不被其他文件引用,必须在定义这个外部变量时加一个。

41.写出下列程序段的运行结果:。

s=7;

while(--s)

s-=2;

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

42.C语言规定:在每一个字符串的结尾加上一个,以便系统据此判断字符是否结束。

43.break语句只能用在语句或语句中。

44.Continue语句只能用在___ __语句中。

45.结构化程序设计方法中,程序有三种基本结构,即:,和。

46.设有int a,b;当执行输入函数scanf(“%d:%d”,&a,&b);时正确的输入是。(给a输入5,给b输入8)。

四、问答题

1.请阅读下面的程序:

#include

int main()

{int cal(int a,int b,char op);

int x,y,z,result;

char op1,op2;

scanf("%d%c%d%c%d",&x,&op1,&y,&op2,&z);

if(op1=='+'&&op2=='*')

result=cal(x,cal(y,z,op2),op1);

else

result=cal(cal(x, y, op1),z, op2);

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

return 0;

}

int cal(int a,int b,char op)

{

if(op=='*')

return(a*b);

else

return(a+b);

}

问题1:当输入2+3*5时,上述程序将输出。

问题2:把op1= ='+' && op2= ='*' 中的op1,op2对调后,当输入为2+3*5时,上述程序将输出。

2.试阐述'x'和"x"的区别。

3.写出以下程序的运行结果。

#include "stdio.h"

int main()

{

struct stu_list

{

int num;

char *name;

}sl={34, "sun"};

printf ("Number=%d\tName=%s\n", sl.num,https://www.wendangku.net/doc/ce6111042.html,);

return 0;

}

该程序的运行结果为:

4.假设有以下程序段:

int a[10];

……

a[10]=3;

……

试分析两个a[10]的区别。

五、阅读程序题

1. 以下程序的执行结果是。

#include

{

int func(int a,int b);

int k=4,m=1,p;

p=func(k,m);

printf("%d",p);

p=func(k,m);

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

return 0;

}

func(int a,int b)

{

static int m=0,i=2;

i+=m+1;

m=i+a+b;

return(m);

}

2. 该程序运行结果为:

#include "stdio.h"

int main()

{

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

p=a;

printf("%d\t%d\t%d\n",a[3],*p,*(p+2));

p++;

printf("%d\t %d\n",*p,a[3]);

return 0;

}

3.以下该程序运行结果为:

#include "stdio.h"

int main ()

{

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

p=a;

printf ("%d\t%d\t%d\n",a[3],*p,*(p+2));

p++;

printf ("%d\t%d\n",*p,a[3]);

return 0;

}

4. 阅读以下程序

#include "stdio.h"

{

char c;

c=getchar();

switch(c)

{

case 'a':

case 'A':printf("BASIC\n");break;

case 'b':

case 'B':printf(FORTRAN\n");break;

case 'c':

case 'C':printf("PASCAL\n");break;

default:printf("????\n");

return 0;

}

请回答:输入d,回车,运行结果为:

输入a,回车,运行结果为:

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

#include "stdio.h"

int main()

{int x,sum=3;

int a[]={70,80,90,65,75,95,60,80};

for (x=1;x<7;x*=2)

sum=sum+a[x];

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

return 0;

}

6.以下程序的运行结果是运行结果:

#include "stdio.h"

int main()

{void pr(int *p);

int a[]={10,32,13,24,45,96,17,81,9,-999};

int i,*pa;

pa=a;

for(i=0;a[i]!=-999;i++)

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

printf("\n");

pr(pa);

return 0;

}

void pr(int *p)

{while(*p!=-999)

{if(*p%2==0)printf("%d,",*p);

p++;

}

printf("%\n");

}

7. 阅读以下程序

#include "stdio.h"

int main()

{

char c;

c=getchar();

switch(c)

{

case 'b':

case 'B': printf("BASIC\n");break;

case 'f':

case 'F': printf("FORTRAN\n"); break;

case 'p':

case 'P': printf("PASCAL\n"); break;

default: printf("????\n");

}

return 0;

}

请回答:输入p,回车,运行结果为:

输入a,回车,运行结果为:

8. 以下程序的执行结果是。

#include

int main()

{

int func(int x);

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

return 0

}

func(int x)

{

int p;

if(x==0||x==1)

return(3);

p=x-func(x-2);

return p;

}

9. 以下程序的运行结果是:

#include "stdio.h"

int main()

{

void f(int n);

int m=4;

f(--m);

f(++m);

return 0;

}

void f(int n)

{

int x=5,y=10;

if (n>0)

printf("%d\t %d\t \n",++x,++y);

}

10. 以下程序的运行结果是:

#include "stdio.h"

int main()

{int m=10;

printf("%d\t%d\t",++m,m--);

printf("%d\t%d",--m,m++);

printf("\n");

return 0;

}

11. 以下程序的该程序运行结果为:

#include "stdio.h"

int main()

{

void f(int n);

int m=1;

f(--m);

f(++m);

return 0;

}

void f(int n)

{

int x=5,y=10;

if (n>0) printf("%d\t %d\t\n",++x,++y);

}

12. 以下程序的执行结果是。

#include

int main()

{

int funcl(int a,int b);

int func2(int a,int b);

int x=7,y=17;

printf("%d\n",funcl(x,y));

return 0

}

int funcl(int a,int b)

{

int c;

a+=a;

b+=b;

c=func2(a,b);

return(c*c);

}

int func2(int a,int b)

{

int c;

c=a*b%3;

return(c);

}

13. 以下程序的执行结果是。

#include

int x=-8,y=100;

int main()

{

int func(int a);

int m=2;

y=func(m);

printf("x=%d,y=%d,m=%d\n",x,y,m);

return 0

}

int func(int a)

{

int y;

y=x+a;

x++;

a++;

return(x+y+a);

}

14. 以下程序的程序运行结果为:

#include "stdio.h"

int main()

{ int n=7;

while (n<=15)

{n++;

if(n%2!=0)

continue;

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

}

printf("\n");

return 0;

}

15. 以下程序的运行结果为:

#include "stdio.h"

int main()

{

struct stu_list

{

int num;

char *name;

}sl={34, "sun"};

printf ("Number=%d\tName=%s\n", sl.num,https://www.wendangku.net/doc/ce6111042.html,);

return 0;

}

16. 以下程序的运行结果为:

#include "stdio.h"

int main()

{ int x,sum=3;

int a[ ]={70,80,90,65,75,95,60,80};

for (x=1;x<7;x*=2)

sum=sum+a[x];

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

return 0;

}

17.以下程序的功能是:

#include "stdio.h"

int main()

{

int a[5]={31,6,31,65,41},i,j,m,k;

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

{

k=i;

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

if (a[k]>a[j]) k=j;

if (k!=j)

{m=a[k];a[k]=a[i];a[i]=m;}

}

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

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

return 0;

}

六、程序完整填空

1.连续向数组输入成绩,当输入负数时停止接收数据,显示数组元素的值。

#include "stdio.h"

int main()

{int n=0;

int c[100];

do

{printf("enter num:\n");

[1] ;

n++;

}while( [2] );

for(n=0;c[n]>=0;n++)

printf("%d,",c[n]);

printf("\n");

return;

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

#include "stdio.h"

int main()

{

int n=0,c;

c=getchar();

while( [1] )

{

if( [2] ) n++;

c=getchar();

}

printf("the number of digits is:%d",n);

printf("\n");

return 0;

}

3.统计出读入的10个数据中,求出大于0的整数个数和小于0的整数个数。

#include

int main()

{int i,j,n=1,a;

i=j=0;

scanf ("%d",&a);

while ([1] )

{if (a>0) i= [2] ;

if(a<0) j= [3] ;

[4] ;

[5] ;

}

pintf("%i=%4d j=%4d\n",i,j);

return 0;

}

4.将一维数组的数据按从大到小排序输出。

#include "stdio.h"

int main()

{int i,j,temp;

int a[8]={50,80,70,45,90,65,78,95};

for( [3] ;i<7;i++)

for(j= [4] ;j<8;j++)

if( [5] )

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

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

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

printf("\n");

return 0;

}

5.以下程序的功能是根据输入的'y' ('Y') 与'n' ('N'),在屏幕上分别显示出''This is YES. ''与''This is YES. ''。请填空。

#include

Int main()

{

void YesNo(char ch);

char ch;

printf(''\nEnter a char 'y', 'Y' or 'n', 'N':'');

ch = [1] ;

printf(''ch:%c\n'',ch);

YesNo(ch);

return 0

}

Void YesNo(char ch)

{

Switch(ch)

{

Case 'y':

Case 'Y':printf(''\nThis is YES.\n''); [2] ;

Case 'n':

Case …N?:printf(''\nThis is No.\n''); [3] ;

}

}

6.三十六个人抬三十六块砖。每个男人挑两块,每个女人搬一块。两个小孩抬一块。问要多少男人,多少女人和多少小孩?

#include

int main()

{ [1] ;

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

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

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

if ( [5] )

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

return 0;

}

7.从键盘接收三个值,找出最大在MAX中。

#include

int main()

{int a,b,c,max;

scanf("%d,%d,%d", [1] );

max=(a>b)? [2] : [3] ;

max= [4] ? [5] : [6] ;

printf("%d",max);

return 0;

}

七、程序改错(每个程序有若干处错误,用注释符号“//”在有错误的语句后面说明如何修改错误)

1.

#include

int main ()

{ fo1at a,b,c;

a=2,b=4,c=9;

int i;

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

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

return 0;

}

2.

#include "stdio"

int main();

{

void f(int x1,int x2);

int a2;a3;i;

int a(5)=[3;5;6;7;5];

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

if ( a(i)=5) printf("a=%d\t",a(i)); /*若a数组元素的值等于5,则输出*/

a2=4;a3=6;

f(a2;a3);

return 0;

}

void f(x1,x2)

{

int x3;

x3=x1

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

retrnu;

}

3.

#include

int main ()

{void f(int x1,float x2);

int a2,a3,i;

int a(5)=[3,5,6,7,5];

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

if(a(i)= =5)

printf("a=%d\t",a(i));

a2=4;a3=6;

f(a,a2,a3);

return 0;

{

void f(int x1,int x2)

{

int x3;

x3=x1

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

return;

}

4.

#include

Int main ()

{int a,b;

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

if a>b

printf ("%d",A)

else

printf ("%d",B)

return 0;

}

5. 以下main函数程序有错误。请说明错误原因,重新写出正确的main函数。

main()

{

int a;

a=1;

float b;

b=2.5

char c;

c=?a?;

}

6. 以下main函数程序有错误。请说明错误原因,重新写出正确的main函数。

main()

{

Int y;

Y=5.75

}

7. 以下的程序功能是求三角形的面积。里面的程序代码有错误。请指出错误的语句,

并写出正确的语句。

#include

#include

main()

{

float a, b, c, s, area;

printf("Input a,b,c:");

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

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

area = sqrt(s (s - a)(s - b)(s - c));

printf("area = %f\n", area);

}

8. 以下的main函数,要把数组a各元素

七、编程题

1.编写一个函数Fact(),计算整数n的阶乘n!;再编写main()函数,在函数中调用Fact()来计算一个整数的阶乘,并将结果在屏幕上显示出来。

答案:参见教材P149-P150 [例7.1]程序。

2.编写程序计算组合数的程序。组合数的计算公式为:

)!

k m (!k !

m C k m -=

答案:参见教材P157 [例7.4]程序。 3.从键盘输入某年某月(包括闰年),编程输出该年的该月拥有的天数。恒旭 答案:参见教材P196[例8.4]程序。

4.从键盘输入某班学生某门课程的成绩(该班人数不超过40人),具体人数由键盘输入。试编程计算其平均分。

答案:参见教材P197 [例8.5]程序。

5. 从键盘输入某班学生某门课程的成绩(该班人数不超过40人),具体人数由键盘输入。试编程将分数按从低到高的顺序进行排序输出。

答案:参见教材P204- P205[例8.8]程序。

6.从键盘任意输入两个整数,编程实现将其交换后再重新输出。 答案:参见教材P241- P242[例9.6]程序。

7.请编程实现按奥运会参赛国在字典中的顺序对其入场次序进行排序。假设参赛国不超过150个。

答案:参见教材P267- P269[例10.4]程序。

8. 编写程序,输入一个3行4列的二维整数数组,然后输出这个二维数组的元素值。 答案:参见教材P302- P303[例11.3]程序。

c语言期末测试题附答案

c语言期末测试题附答 案 集团标准化工作小组 #Q8QGGQT-GX8G08Q8-GNQGJ8-MHHGN#

课程代码:A100002 座位号: 《计算机技术基础(C 语言)》试卷A 姓名: 学号: 专业: 学院: 班级: 20 年 月 日 第一 部分 选择题(共 30 分) 一、单项选择题(本大题共 15 小题,每题只有一个正确答 案,答对一题得 2 分,共 30 分) 1、以下关于C 语言标识符的描述中,正确的是 【 】。 A )标 识符可以由汉字组成 B )标识符只能以字母开头 C )关键字可以作为用户标识符 D )Area 与area 是不同的标识符 2、使下列程序段输出“123,456,78”,键盘输入数据,正确的输入是【 】。 int i,j,k; scanf(“%d,%3d%d”,&i,&j,&k); printf(“%d,%d,%d \n”,i,j,k); 3、判断char 类型的变量c1是否为数字字符的正确表达式为 【 】。 A) (c1>=0)&&(c1<=9) B) (c1>=’0’)&&(c1<=’9’) C) ’0’<=c1<=’9’ D) (c1>=’0’)||(c1<=’9’) 4、若有语句int a=1,b=2,c=3;则以下值为0的表达式是 【 】。 A )’a’&&’b’ B )a<=b C )((a>b)||(b0;i--);后,变量i 的值为 【 】。 A )10 B )9 C )0 D )1 8、若有int *p1, *p2,k; 不正确的语句是 【 】 A. p1=&k B. p2=p1 C. *p1=k+12 D. k=p1+p2 9、在函数中未指定存储类别的局部变量,其隐含的存储类别是 【 】

C语言综合练习题

《C语言程序设计》综合练习题 一、单项选择题 1.下列( D )是字符串比较函数。 A. puts() B.gets() C. strcpy () D. strcmp() 2.构成一个完整的C源程序必须有且只有一个( C )。 A. 函数 B.过程 C. 主函数 D. 程序 3. 设有int i,j,k;则表达式i=1,j=2,k=3,i&&j&&k的值为( A )。 A. 1 B. 2 C. 63 D. 0 4.在C语言中,不同类型数据混合运算时,要先转化成同一类型后进行运算。设一表达式中包含有int、long、unsigned、char类型的变量和数据,则表达式最后的运算结果是(D)类型数据。 A.int B.char C.unsigned D.long 5.下列(D)不是构成标识符的字符。 A.字母 B.数字 C.下划线 D.标点符号 6.表达式:3>5&&-1||6<3-!-1的值是( A )。 A. 0 B.1 C. 表达是不合法 D. 均不对 7. 以下标识符中能做为合法的C用户标识符的是(D)。 A.A3+B3 B. float C. 3dx D. x3d 8. 以下数据中不正确的数值或字符常量是(B)。 A. 0.0 B. 3E2.7 C. 9861 D. 0xabcd 9. fp=fopen(''test.txt",''r''); 语句中,r对文件处理方式是(A)。 A. 只读打开文件 B. 只写打开文件 C. 追加打开文件 D. 读写打开文件 10.表示关系x<=y<=z的C语言表达式为(A) A. (x<=y)&&(y<=z) B. (x<=y)and(y<=z) C. (x<=y)&(y<=z) D. (x<=y<=z) 11.如果要把常量327存入变量a中,a不能定义的类型是(B)。 A. int B. char C. long D. float 12. 在变量的存储结构中,( B )局部变量的初始化只有一次。 A. 自动 B. 静态 C.外部 D. 寄存器 13.下列能正确进行字符串赋值操作的语句是(C)。 A. char s[5]={ "ABCDE"}; B. char s[5]={ 'a', 'b', 'c', 'd', 'e'} C. char *s;s="abcde"; D. char *s; scanf("%s",s); 14.语句if(3/4>1/2)a=1;else a=0; 运行后,a的值是(A)。 A. 1 B. 0 C.与机器有关 D.语法有错 15.下列( C )是合法自定义标识符。 A. 3ma B. float C. m3a D.–ab 16.设a,b和c都是int型变量,且a=3,b=4,c=5,则下列表达式中,值为0的表达式是(D) A. 'a' && 'b' B. a<=b C. c>=b||b+c&&b-c D. a<=b+c&&c>=a+b 17.判断整型变量i,j可同时被2整除的表达式(i,j同时被2整除返回1,否则返回

浙江大学C语言总复习题--综合

综合练习 一、判断题 1.在Trubo_C中运行一个C程序时,实际上是运行后缀为.EXE的可执行文件。2.在C语言中整数可用十进制数、八进制数和二进制数三种数制表示。 3.在程序的运行过程中,整型常量的值是可以改变的。 4. C程序中,用/* 和 */界定的部分称之为注释,注释部分对程序的运行不起作用。5.大括弧 { } 只能用来括复合语句。 6. do_while语句构成的循环不能用其它循环语句来代替。 7.不能用scanf 函数输入字符。 8.在 C 程序中,函数的定义不可以嵌套,但函数的调用可以嵌套。 9. 一个变量的作用域取决于变量定义语句在程序中出现的位置。 10.C 语言的一个编译预处理命令用 # 开始,最后加分号。 11. C语言源程序文件经过编译、连接之后生成一个后缀为.EXE的文件。 12. C语言中以 %o开头的数是八进制整数。 13.在程序的运行过程中,符号常量的值是可以改变的。 14.在 C 程序中,APH 和 aph 代表不同的变量。 15.一个复合语句在语法上被认为是一条语句。 16. 只能用while语句构成循环。 17.不能用printf函数输出字符。 18. C程序中各函数之间既允许直接递归调用也允许间接递归调用。 19. 在函数外部定义的变量称为全局变量。 20.宏定义的命令行可以看作是一条C 语句。 21. C语言源程序是可以用来直接运行的程序。 22. C语言中以 %x 开头的数是十六进制整数。 23. C程序中定义的变量,代表内存中的一个存储单元。 24.在 C 程序中,9ab是非法的用户标识符。 25. C语句必须用一个分号作为结束。 26. do_while语句构成的循环不能用break语句退出。 27. scanf 函数是 c 语言的标准输入函数。 28. C程序的main函数不能有参数。 29. 在函数内部定义的变量称为局部变量。 30.用#include包含的头文件的后缀必须是.h。 31. C 语言程序的三种基本结构是顺序结构、选择结构和循环结构。 32.在C语言中整数只能表示为十进制数的形式。 33.在 C 程序中,无论多少大的整数还是实数,都能准确无误的表示。 34. Turbo-C 语言中,字符类型数据占1个字节。 35.空语句是合法的C语句。 36. while语句的循环体不能是复合语句。 37. printf 函数是 c 语言的标准输出函数。 38. C程序的main函数可以有参数,但参数不能是指针类型。 39.在 main函数中定义的变量称为全局变量。 40.#include 和 #define 不是 C 语句。 41. C 语言程序的三种基本结构是嵌套结构、选择结构和循环结构。 42. C语言中 018是合法的八进制整数。 43. C程序中所要用到的变量应该先定义,后使用。 44.十六进制数0x11的十进制数是17。 45.赋值语句是一种可执行语句。

c语言期末考试试题

一、单项选择题。(每题1分,共20分) 1. C程序的基本单位是:() A.子程序 B.程序 C.子过程 D.函数 2.在C语言中,非法的八进制是:() A.016 B.018 C.017 D.02 3. 不是C语言实型常量的是:() A.55.0 B.0.0 C.55.5 D.55e2.5 4 .字符串“xyzw”在内存中占用的字节数是:() A.6 B.5 C.4 D.3 5. 若已定义f,g为double类型,则表达式:f=1,g=f+5/4的值是:() A.2.0 B.2.25 C.2.1 D.1.5 D.1.5 D.1.5 D.1.5 6. 若有语句char c1=`d`,c2=`g`;printf(“%c,%d\n”,c2- `a`,c2-c1);则输出结果为:() (a的ASCII码值为97) A.M,2 B.G,3 C.G,2 D.D,g 7. 使用语句scanf(“a=%f,b=%d”,&a,&b);输入数据时,正确的数据 输入是:() A.a=2.2,b=3 B.a=2.2 b=3 C.2.2 3 D.2.2,3 8.表示关系12<=x<=y的C语言表达式为:() A.(12<=x)&(x<=y) B. (12<=x)&&(x<=y) C. (12<=x)|(x<=y) D.(12<=x)||(x<=y) 9.设x=1,y=2,m=4,n=3,则表达式x>y?x:mc4)后,s,t的值为:() A.1,2 B.1,1 C.0,1 D.1,0 12. 语句for(a=0,b=0;b!=100&&a<5;a++)scanf(“%d”,&b); scanf最多可执行次数为:() A.4 B.6 C.5 D.1 13. 对于for(s=2;;s++)可以理解为:()

C语言综合练习题

1、下列叙述中错误的是(A)。 A.一个C语言程序只能实现一种算法 B.C程序可以由多个程序文件组成 C.C程序可以由一个或多个函数组成 D.一个C函数可以单独作为一个C程序文件存在 2、以下叙述中正确的是(C)。 A.C程序的基本组成单位是语句 B.C程序中的每一行只能写一条语句 C.简单C语句必须以分号结束 D.C语句必须在一行内写完 3、以下叙述中正确的是(C)。 A.C程序中的注释只能出现在程序的开始位置和语句的后面 B.C程序书写格式严格,要求一行内只能写一个语句 C.C程序书写格式自由,一个语句可以写在多行上 D.用C语言编写的程序只能放在一个程序文件中 4、按照C语言规定的用户标识符命名规则,不能出现在标识符中的是(B)。 A.大写字母 B.连接符 C.数字字符 D.下划线 5、下列定义变量的语句中错误的是(D)。 A.int _int; B.double int_; C.char For; D.float USS 6、以下选项中不能作为C语言合法常量的是(A)。 A.′cd′ B。 0.1c+6 C.〞\a〞 D.′\011′ 7、以下选项中不属于字符常量的是 (B)。A.'C' B."C" C.'\xCC0' D.'\072' 8、下列常量哪个是不合法的(B)。 A.0x4d00 B.‘BASIC’ C.?\\?D.“/045” 9、以下4组用户定义标识符中,全部合法的一组是(A)。 A._main B.If C.txt D.int enclude -max REAL k_2 sin turbo 3COM _001 10、以下选项中不属于字符常量的是(B)。A.'C' B."C" C.'\xCC' D.'\072' 11、下列变量名中哪个是不合法(C)。A.Turbo_C B.vc C.int D._2ab 12、设变量已正确定义并赋值,以下正确的表达式是(B)。 A.b=3++ B.x=2,++y C.a=14%3.3 D.x=y+3=2 13、以下定义语句中正确的是 (D)。 A.int a=b=0 ; B.char A=65+1,b='b'; C.float a=1,*b=&a,*c=&b ; D.double a=0.0,b=1.1; 14、以下选项中正确的定义语句是(C)。A.double a;b; B. double a=b=7 C.double a=7,b=7; D.double,a,b; 15、以下不能正确表示代数式2ab/cd 的C 语言表达式是(D)。 A.2*a*b/c/d B.a*b/c/d*2 C.a/c/d*b*2 D.2*a*b/c*d 16、若变量x、y已正确定义并赋值,以下 符合C语言语法的表达式是(A)。 A.++x,y=x-- B.x+1=y C.x=x+10=x+y D.double(x)/10 17、以下关于逻辑运算符两侧运算对象的叙 述中正确的是(D)。 A.只能是整数0或1 B.只能是整数0或非0的整数 C.可以是结构体类型的数据 D.可是任意合法的表达式 18、若有定义int x,y;并已正确给变量赋 值,则以下选项中与表达式(x-y)?(x++): (y++)中的条件表达式(x-y)等价的是(C)。 A.(x-y>0) B.(x-y<0) C.(x-y<║x-y>0) D.(x-y==0) 19、设有定义:int k=0;,以下选项的四个 表达式中与其他三个表达式的值不相同的 是(A)。 A.k++ B.k+=1 C.++k D.k+1 20、若以下选项中的变量已正确定义,则正 确的赋值语句是(C)。 A.x1=26.8%3 B.1+2=x2 C.x3=0x12 D.x4=1+2=3; 21、执行以下程序段后,w的值为(C)。 int w=′A′,x=14,y=15; w=((x||y)&&(w<′a′)); A. -1 B.NULL C.1 D. 0 22、当变量c的值不为2、4、6时,值也为“真”的表达式是 (B)。 A.(c==2)‖(c==4)‖(c==6) B.(c>=2&&c<=6)‖(c!=3)‖(c!=5) C.(c>=2&&c<=6)&&!(c%2)

C语言综合习题及答案

C语言练习题 一、选择题 1. 一个完整的C源程序是【B 】。 A)要由一个主函数或一个以上的非主函数构成 B)由一个且仅由一个主函数和零个以上的非主函数构成 C)要由一个主函数和一个以上的非主函数构成 D)由一个且只有一个主函数或多个非主函数构成 2. 以下关于函数的叙述中正确的是【C】。 A)C语言程序将从源程序中第一个函数开始执行 B)可以在程序中由用户指定任意一个函数作为主函数,程序将从此开始执行 C)C语言规定必须用main作为主函数名,程序将从此开始执行,在此结束 D)main可作为用户标识符,用以定义任意一个函数 3. 以下关于函数的叙述中不正确的是【B】。 A)C程序是函数的集合,包括标准库函数和用户自定义函数 B)在C语言程序中,被调用的函数必须在main函数中定义 C)在C语言程序中,函数的定义不能嵌套 D)在C语言程序中,函数的调用可以嵌套 4. 在一个C程序中,【B 】。 A)main函数必须出现在所有函数之前 B)main函数可以在任何地方出现 C)main函数必须出现在所有函数之后 D)main函数必须出现在固定位置 5.C程序的执行是从【A 】开始的。 A)主函数 B)子函数 C)从程序第一行 D)printf()函数 6.以下选项中不合法的标识符是【C 】 A)print B)FOR C)&a D)_00 7.以下选项中可作为C语言合法常量的是【A】 A)-80 B)-080 C)-8e1.0 D)-80.0e 8.以下选项中不属于字符常量的是【B】 A)′C′ B)"C" C)′\xCC′ D) ′\072′ 9. 若在C语言中未说明函数的类型,则系统默认该函数的数据类型是【C】 A)float B)long C)int D)double 10. 以下关于函数叙述中,错误的是【D】。 A)函数未被调用时,系统将不为形参分配内存单元 B)实参与形参的个数应相等,且实参与形参的类型必须对应一致 C)当形参是变量时,实参可以是常量、变量或表达式 D)形参可以是常量、变量或表达式 11. C程序中各函数之间可以通过多种方式传递数据,下列不能用于实现数据传递的方式是

C语言程序设计期末考试试题(含答案)

C语言程序设计 期末考试试题及其答案 一、单项选择题(本大题共20题,每题2 分,共40分) 1、以下不是C语言的特点的是( ) A、C语言简洁、紧凑 B、能够编制出功能复杂的程序 C、C语言可以直接对硬件进行操作 D、C语言移植性好 2、以下不正确的C语言标识符是( ) A、ABC B、abc C、a_bc D、ab.c 3、一个C语言程序是由( ) A、一个主程序和若干子程序组成 B、函数组成 C、若干过程组成 D、若干子程序组成 4、一个算法应该具有“确定性”等5个特性,对另外4个特性的描述中错误的是( ) A、有零个或多个输入 B、有零个或多个输出 C、有穷性 D、可行性 5、设变量a是整型,f是实型,i是双精度型,则表达式10+‘a’+i*f值的数据类型为( ) A、int B、float C、double D、不确定 6、在C语言中,char型数据在内存中的存储形式是( ) A、补码 B、反码 C、源码 D、ASCII码 7、有如下程序,输入数据:12345M678<cR>后(表示回车),x的值是( ) 。 #include main(){ int x; float y; scanf("%3d%f",&x,&y); } A、12345 B、123 C、45 D、345 8、若有以下定义int a,b; float x,则正确的赋值语句是( ) A、a=1,b=2 B、b++; C、a=b=5 D、b=int(x); 9、以下程序的执行结果是( )

#include { int i=10,j=10; printf("%d,%d\n",++i,j--); } A、11,10 B、9,10 C、11,9 D、10,9 10、巳知字母A的ASCII码是65,以下程序的执行结果是( ) #include main() { char c1='A',c2='Y'; printf("%d,%d\n",c1,c2); A、A,Y B、65,65 C、65,90 D、65,89 11、下列运算符中优先级最高的是( ) A、< B、十 C、% D、!= 12、设x、y和z是int型变量,且x=3,y=4,z=5,则下面表达式中值为0是( ) 。 A、’x’&&’y’ B、x<=y C、x||y+z&&y-z D、!((x<y)&&!z ||1) 13、判断char型变量cl是否为小写字母的正确表达式为( ) A、’a’<=c1<=f’z’ B、(c1>=a)&&(c1<=z) C、(‘a’>=c1) (‘z’<=c1) D、(c1>=’a’)&&(c1<=’z’) 14、字符串"a"在内存中占据的字节个数为( ) A、0 B、 1 C、 2 D、 3 15、下面有关for循环的正确描述是( ) A、for循环只能用于循环次数已经确定的情况 B、for循环是先执行循环体语句,后判定表达式 C、在for循环中,不能用break语句跳出循环体 D、for循环体语句中,可以包含多条语句,但要用花括号括起来 16、下面程序的运行结果是( ) #include main() {int num=0; while(num<=2) {num++; printf(“%d ,num); } } A、 1 B、 1 2 C、 1 2 3

C综合理解练习答案解析

第三章类和对象 一、选择题 1. 在一个类的定义中,包含有(C )成员的定义。 A. 数据 B. 函数 C. 数据和函数 D. 数据或函数 2. 在类作用域中能够通过直接使用该类的(D)成员名进行访问。 A. 私有 B. 公用 C. 保护 D. 任何 3. 假定AA为一个类,a为该类公有的数据成员,x为该类的一个对象,则访问x对象中数据成员a的格式为(D)。 A. x(a) B. x[a] C. x->a D. x.a 4. 假定AA为一个类,a()为该类公有的函数成员,x为该类的一个对象,则访问x对象中函数成员a()的格式为(B )。 A. x.a B. x.a() C. x->a D. x->a() 5. 假定AA为一个类,a为该类公有的数据成员,px为指向该类对象的一个指针,则访问px所指对象中数据成员a的格式为(C )。 A. px(a) B. px[a] C. px->a D. px.a 6. 假定AA为一个类,a为该类私有的数据成员,GetValue()为该类公有函数成员,它返回a的值,x为该类的一个对象,则访问x对象中数据成员a的格式为(D)。 A. x.a B. x.a() C. x->GetValue() D. x.GetValue() 7. 假定AA为一个类,int a()为该类的一个成员函数,若该成员函数在类定义体外定义,则函数头为(A)。 A. int AA::a() B. int AA:a() C. AA::a() D. AA::int a() 8. 假定AA为一个类,a为该类公有的数据成员,若要在该类的一个成员函数中访问它,则书写格式为

A. a B. AA::a C. a() D. AA::a() 9. 若需要把一个类外定义的成员函数指明为内联函数,则必须把关键字( B )放在函数原型或函数头的前面。 A. in B. inline C. inLine D. InLiner 10. 在多文件结构的程序中,通常把类的定义单独存放于(D )中。 A. 主文件 B. 实现文件 C. 库文件 D. 头文件 11. 在多文件结构的程序中,通常把类中所有非内联函数的定义单独存放于(B)中。 A. 主文件 B. 实现文件 C. 库文件 D. 头文件 12. 在多文件结构的程序中,通常把含有main()函数的文件称为(A )。 A. 主文件 B. 实现文件 C. 程序文件 D. 头文件 13. 在C++程序中使用的cin标识符是系统类库中定义的( A)类中的一个对象。 A. istream B. ostream C. iostream D. fstream 14. 在C++程序中使用的cout标识符是系统类库中定义的( B )类中的一个对象。 A. istream B. ostream C. iostream D. fstream 15. 假定AA是一个类,abc是该类的一个成员函数,则参数表中隐含的第一个参数的类型为(D)。 A. int B. char C. AA D. AA* 16. 假定AA是一个类,abc是该类的一个成员函数,则参数表中隐含的第一个参数为(C)。 A. abc B. *this C. this D. this& 17. 假定AA是一个类,“AA& abc();”是该类中一个成员函数的原型,若该函数存在对*this赋值的语句,当用x.abc()调用该成员函数后,x的值(A )。 A. 已经被改变 B. 可能被改变 C. 不变 D.不受函数调用的影响 18. 假定AA是一个类,“AA* abc()const;”是该类中一个成员函数的原型,若该函数返回this值,

c语言综合练习题及问题详解

模拟试题一 一、选择题(本大题30分,每小题2分) 1.下列说确的是。 A)main函数必须放在C程序的开头 B)main函数必须放在C程序的最后 C)main函数可以放在C程序的中间部分,但在执行C程序时是从程序开头执行的 D)main函数可以放在C程序的中间部分,但在执行C程序时是从main函数开始的 2.在下面几组数据类型中, 全为最常用的基本数据类型的是哪一组:。 A)整型实型字符型 B)整型数组指针 C)数组结构体共用体 D)指针逻辑型空类型 3.若有说明语句:char c= ‘\64’ ; 则变量C包含:。 A)1个字符 B)2个字符 C)3个字符 D)说明不合法,C值不确定 4.设有如下定义和执行语句,其输出结果为:。 int a=3,b=3; a = -- b + 1; printf(“%d %d”,a,b); A)3 2 B)4 2 C)2 2 D)2 3 5.C语言中,运算对象必须是整型数的运算符是。 A)% B)\ C)% 和 \ D)** 6.能正确表示x的取值围在[0,100]和[-10,-5]的表达式是。 A)(x<=-10)||(x>=-5)&&(x<=0)||(x>=100) B)(x>=-10)&&(x<=-5)||(x>=0)&&(x<=100) C)(x>=-10)&&(x<=-5)&&(x>=0)&&(x<=100) D)(x<=-10)||(x>=-5)&&(x<=0)||(x>=100) 7.程序段如下 int k=0; while(k++<=2); printf("last=%d\n",k); 则执行结果是last= 。 A)2 B)3 C)4 D)无结果 8.下面有关for循环的正确描述是。 A)for循环只能用于循环次数已经确定的情况 B)for循环是先执行循环体语句,后判断表达式 C)在for循环中,不能用break语句跳出循环体 D)for循环的循环体语句中,可以包含多条语句,但必须用花括号括起来 9.若二维数组a有m列,则a[I][j]元素前的数组元素个数为:。

精选-C语言期末考试题(含答案)

《C 语言程序设计》期末试卷 一、单项选择题(10x2’=20’) 1、以下叙述正确的是( ) A )C 语言的源程序不必通过编译就可以直接运行。 B ) C 语言中的每条可执行语句最终都将被转换成二进制的机器指令。 C )C 语言源程序经编译形成的二进制代码可以直接运行。 D )C 语言中的函数不可以单独进行编译。 2、一个C 语言的源程序中( ) A )必须有一个主函数 B )可能有多个主函数 C )必须有除主函数外其它函数 D )可以没有主函数 3、以下不能定义为用户标识符的是( ) A )scanf B )Void C )_3com D )int 4、若以下选项中的变量已正确定义,则正确的赋值语句是( ) A )x1=26.8%3; B )1+2=x2; C )x3=0x12; D )x4=1+2=3; 5、设有定义:float a=2,b=4,h=3;以下C 语言表达式中与代数式h b a *)(2 1 的计算结果不. 相符的是( ) A )(a+b)*h/2 B )(1/2)*(a+b)*h C )(a+b)*h*1/2 D )h/2*(a+b) 6、C 语言中用于结构化程序设计的3种基本结构是( ) A )顺序结构、选择结构、循环结构 B )if 、switch 、break C )for 、while 、do-while D )if 、for 、continue 7.在while (!x )语句中的!x 与下面条件表达式等价的是( ) A) x!=0 B) x==1 C) x!=1 D) x==0 8、有以下程序: #include void main(){ int i=1,j=1,k=2; if( (j++||k++)&&i++ ) printf(“%d,%d,%d\n ”,i,j,k);} 执行后的输出结果是( ) A )1,1,2 B )2,2,1 C )2,2,2 D )2,2,3 9、有以下程序: #include void main(){ int i,s=0; for(i=1;i<10;i+=2) s+=i+1; printf(“%d\n ”,s);} 程序执行后的输出结果是( ) A )自然数1~9的累加和 B )自然数1~10的累加和

C语言综合习题及答案

C语言综合习题及答案 Prepared on 24 November 2020

C语言练习题 一、选择题 1. 一个完整的C源程序是【B 】。 A)要由一个主函数或一个以上的非主函数构成 B)由一个且仅由一个主函数和零个以上的非主函数构成 C)要由一个主函数和一个以上的非主函数构成 D)由一个且只有一个主函数或多个非主函数构成 2. 以下关于函数的叙述中正确的是【C】。 A)C语言程序将从源程序中第一个函数开始执行 B)可以在程序中由用户指定任意一个函数作为主函数,程序将从此开始执行C)C语言规定必须用main作为主函数名,程序将从此开始执行,在此结束 D)main可作为用户标识符,用以定义任意一个函数 3. 以下关于函数的叙述中不正确的是【B】。 A)C程序是函数的集合,包括标准库函数和用户自定义函数 B)在C语言程序中,被调用的函数必须在main函数中定义 C)在C语言程序中,函数的定义不能嵌套 D)在C语言程序中,函数的调用可以嵌套 4. 在一个C程序中,【B 】。 A)main函数必须出现在所有函数之前 B)main函数可以在任何地方出现 C)main函数必须出现在所有函数之后 D)main函数必须出现在固定位置 程序的执行是从【A 】开始的。 A)主函数 B)子函数 C)从程序第一行 D)printf()函数 6.以下选项中不合法的标识符是【C 】 A)print B)FOR C)&a D)_00 7.以下选项中可作为C语言合法常量的是【A】 A)-80 B)-080 C) D) 8.以下选项中不属于字符常量的是【B】 A)′C′ B)"C" C)′\xCC′ D) ′\072′ 9. 若在C语言中未说明函数的类型,则系统默认该函数的数据类型是【C】

C语言期末上机考试题及答案

C语言上机考试题—01 1. //#include #include double fun( int n ) { double sum=0,a=1; for(;n>0;n--,a++) sum=sum+1/(a*(a+1)); return sum; } main() { // clrscr(); printf("%f\n", fun(10)); } 2. #include main() { int k,m,s=0,i,b=0; for(k=10000;k<=20000;k++ ) { if(k%10==7) { for(i=2,b=0;i main() { int a; printf("请输入一个需要判 断的年份:\n"); scanf("%d",&a); if(a%4==0&&a%100!=0) printf("是闰年\n"); else if(a%400==0) printf("是闰年 \n"); else printf("不是闰 年\n"); } C语言上机考试题—02 1. //#include #include double fun( int n ) { double sum=0,a=1; for(;n>0;n--,a++) sum=sum+1/(a*(a+1)); return sum; } main() { // clrscr(); printf("%f\n", fun(10)); } 2. #include fun(int n) { int i,j=0; for(i=2;i #include main() { char str[81]; int i,j=0,w=1,s=0; printf("请输入一串字符: \n"); gets(str); for(i=0;i

C语言基础练习题(含答案)

第一章 C 语言基础知识 1.1 选择题 1. 以下不是C 语言的特点的是()。 A、语言简洁紧凑 B、能够编制出功能复杂的程序 C、C语言可以直接对硬件操作 D、C语言移植性好 2. 下列字符序列中,不可用作C 语言标识符的是() A .abc123 B.C._123_ D._ok 3. 正确的C 语言标识符是()。 A ._buy_2 B .2_buy C._buy D .buy 4. 请选出可用作 C 语言用户标识符的一组标识符()。 A .void B.a3_b3 C.For D .2a define _123 -abc DO WORD IF Case sizeof 5. 下列符号中,不属于转义字符的是( A.\\ B.\0xAA )。C.\t D .\0 6. 不属于 C 语言关键字的是()。 A .int B .break C.w hile D .character 7. 是 C 语言提供的合法关键字的是()。 A .Float B.signed C.integer D.C har 8. 以下不能定义为用户标示符的是()。

A .scanf B.Void C._3com_ D.int 9. 一个C 程序是由()。 A. —个主程序和若干子程序组成 B. —个或多个函数组成 C. 若干过程组成 D. 若干子程序组成 10. C 语言程序的基本单位是()。 A ?程序行 B ?语句 C ?函数 D .字符 11. 下列说法中,错误的是()。 A ?每个语句必须独占一行,语句的最后可以是一个分号,也可以是一个回车换行符号 B ?每个函数都有一个函数头和一个函数体,主函数也不例外 C ?主函数只能调用用户函数或系统函数,用户函数可以相互调用 D ?程序是由若干个函数组成的,但是必须有、而且只能有一个主函数 12. 以下说法中正确的是()。 A . C语言程序总是从第一个定义的函数开始执行 B ?在C语言程序中,要调用的函数必须在main()函数中定义 C.C 语言程序总是从main()函数开始执行 D . C语言程序中的main()函数必须放在程序的开始部分 13. C 编译程序是()。 A.C 程序的机器语言版本 B .一组机器语言指令 C ?将C源程序编译成目标程序

C语言期末考试复习题及答案

C语言期末考试复习题及答案 一、选择题:下列各题A)、B)、C)、D)四个选项中只有一个是正 确的,请将正确的选项涂写在答案纸上。答在试卷上不得分。 (1)C语言规定:在一个源程序中,main函数的位置 D 。 A)必须在最后B)必须在系统调用的库函数的后面。 C)必须在最开始。。D)可以任意 (2) C语言中的标识符只能由字母、数字和下划线三种字符组成,且第一个字符 A 。 A)必须为字母或下划线。。B)必须为下划线。 C)必须为字母D)可以是字母、数字和下划线中的任一种字符。 (3)下面四个选项中,均是正确的八进制数或十六进制数的选项是 B 。 A)-10 0x8f -011 B) 010 -0x11 0xf1 C) 0abc -017 0xc D) 0a12 -0x123 -0xa (4) C语言中int型数据在内存中占两个字节,则unsegned int取值范围是 A 。 A)0 ~ 65535 B)0 ~ 32767 C)-32767 ~ 32768 D)-32768 ~ 327687 (5) 若有定义:int a = 7; floa x = , y = ; 则表达式x + a % 3 * (int) (x + y) % 2/4 的值是 D 。 A) B) 0.00000 C) D) (6)已知ch是字符型变量,下面不正确的赋值语句是 B 。 A)ch = 5 + 9 ; B) ch= ' a + b '; C) ch = ' \ 0 '; D) ch= '7' + '6' ; (7) 设x , y和z是int型变量,且x = 3, y = 4 , z = 5 则下面表达式中值为0的

《C语言程序设计》综合练习试卷(一)

《C语言程序设计》综合练习试卷(一) 试题一判断题(每题1分,共10 分)(用T表示正确、F表示不正确) C的任何类型数据在计算机内部都是以二进制形式存储的。 按格式符“%d”输出float类型变量时,截断小数位后取整输出。字符数组中字符串可以整体输入输出。 传值调用的形参只有在被调用时,才被创建(分配存储单元)。 C语言中数组名是指针常量。 结构体类型中的各成员项数据类型可以不相同。 函数必须有返回值,否则不能使用函数。 C程序执行总是从第一个函数开始。 可以用关系运算符对字符串进行大小比较。 For循环只能用于循环次数已确定的场合。 试题二单选题(每题1分共15分) 从A)、B)、C)、D)四个选项中,选出正确的一项。 1.以下程序运行后,输出结果是 #include"stdio.h" void main( ) { char s[10]="abcde",*p; p=s+2; printf("%s \n",p);} A) cde B)字符c的ASCII码值C)字符c的地址D)出错 2.对下面函数f,写出f(f(3))的值。 int f(int x) { static int k=0; x+=k--; return x; } A) 5 B) 3 C) 2 D) 4 3.以下程序运行后,输出结果是 #define PT 5 #define S(x) PT*x #include"stdio.h" void main( ) { int a=1,b=2; printf ("%d\n",S(a+b)); } A) 15 B) 7 C) 8 D) 无正确答案 4. 若有float a[3][4]; 正确的引用第3行第1列的元素是 A) **(a+2) B) *(*a+2) C) a[3][1] D) a[3][0] 5.语句printf("%.1f,%d\n",10./4,10/8);的输出是 A) 2.5, 1.25 B) 2.5, 1 C) 1, 1.25 D) 2, 1.25

C语言程序设计综合练习题

C语言程序设计综合练习题 一、选择题 C(1)以下叙述中正确的是 A)C语言比其他语言高级 B)C语言可以不用编译就能被计算机识别执行 C)C语言以接近英语国家的自然语言和数学语言作为语言的表达形式 D)C语言出现的最晚,具有其他语言的一切优点 a.错误,c语言是由B语言发展过来,是低级语言向高级语言发展的过渡语言,而且更偏向底层~~java和C#才算是高级语言 b、明显错误,C语言是编译型语言,需要编译执行 d、这就错的更离谱了,现在微软都在研制F#,C怎么可能最晚?再说,java和c#都比它晚了,再说一下,C语言的主要优点是简洁紧凑、可移植性强,由指针这一特色,更能操作底层,它没有java的跨平台性,没有C#的通俗性。。。 最后,说下C,早期的C在贝尔实验室研制出来的,用于做数值计算和一些数学模型的求解,所以更接近自然语言和数学语言 B(2)在一个C语言程序中 A)main()函数必须出现在所有函数之前 B)main()函数可以在任何地方出现 C)main()函数必须出现在所有函数之后 D)main()函数必须出现在固定位置 B(3)下列关于C语言用户标识符的叙述中正确的是 A)用户标识符中可以出现下划线和中划线(减号)

B)用户标识符中不可以出现中划线,但可以出现下划线 C)用户标识符中可以出现下划线,但不可以放在用户标识符的开头 D)用户标识符中可以出现下划线和数字,它们都可以放在用户标识符的开头 A不能出现中划线 C下划线可以放在开头 D数字不能放开头 D(4)下列关于单目运算符++,--的叙述中正确的是 A)它们的运算对象可以是任何变量和常量 B)它们的运算对象可以是char型变量和int型变量,但不能是float型变量 C)它们的运算对象可以是int型变量,但不能是double型变量和float型变量 D)它们的运算对象可以是char型变量、int型变量和float型变量 A(5)有以下程序段: int m=0,n=0;char c=′a′; scanf(″%d%c%d″,&m,&c,&n); printf(″%d,%c,%d\n″,m,c,n); 若从键盘上输入:10A10<回车>,则输出结果是 A)10,A,10 B)10,a,10 C)10,a,0 D)10,A,0 格式字符%d用于输入整数,%c用于输入字符。在输入时,系统把第一个10作为整数10赋给m,把随后的A作为字符赋值给c,后面的10作为整数赋给n,最后输出的结果为10,A,10 printf语句中,屏幕输出时所显示的间隔符应与输出格式项之

c语言期末测试题(附答案)

课程代码:A100002座位号: 《计算机技术基础(C语言)》试卷A 姓名: 学号: 专业: 学院: 班级: 20 年月日 第一部分 选择题(共 30 分) 一、单项选择题(本大题共 15 小题,每题只有一个正确答案,答对一题得 2 分,共 30 分) 1、以下关于C语言标识符的描述中,正确的是【】。 A)标识符可以由汉字组成B)标识符只能以字母开头 C)关键字可以作为用户标识符D)Area与area是不同的标识符 2、使下列程序段输出“123,456,78”,键盘输入数据,正确的输入是【】。 int i,j,k; scanf(“%d,%3d%d”,&i,&j,&k); printf(“%d,%d,%d\n”,i,j,k); A)12345678 B)123,456,78 C)123,45678 D)123,*45678 3、判断char类型的变量c1是否为数字字符的正确表达式为【】。 A) (c1>=0)&&(c1<=9) B) (c1>=’0’)&&(c1<=’9’) C) ’0’<=c1<=’9’ D) (c1>=’0’)||(c1<=’9’) 4、若有语句int a=1,b=2,c=3;则以下值为0的表达式是【】。 A)’a’&&’b’ B)a<=b C)((a>b)||(b

A. *(a[0]+2) B. a[1][3] C . a[1][0] D. *(*(a+1)+2) 6、在循环语句的循环体中执行break语句,其作用是【】。A)跳出该循环体,提前结束循环 B)继续执行break语句之后的循环体各语句 C)结束本次循环,进行下次循环 D)终止程序运行 7、执行语句for(i=10;i>0;i--);后,变量i的值为【】。A)10 B)9 C)0 D)1 8、若有int *p1, *p2,k; 不正确的语句是【】 A. p1=&k B. p2=p1 C. *p1=k+12 D. k=p1+p2 9、在函数中未指定存储类别的局部变量,其隐含的存储类别是【】 A. 静态(static) B. 外部(extern) C. 自动(auto)D. 寄存器(register) 10、如下程序的输出结果是【】 main( ) { int x=2,a=0,b=0; switch(x) { case 2: a++; b++; case 1: ++a; b--; break; case 0: b++;} printf("a=%d, b=%d\n", a, b);} A. a=2, b=0 B. a=2, b=1 C. a=1, b=1 D. a=1, b=0 11、表示关系a main() {int x; scanf(“%d”,&x); if(x<=3) ; else if(x !=10)printf(“%d\n”,x); } 程序运行时,输入的值在哪个范围才会有输出结果。【】

相关文档
相关文档 最新文档