2016年C语言复习题含答案(2)

2016年C语言复习题含答案(2)
2016年C语言复习题含答案(2)

2016年C语言复习题

一、选择题

1.C语言程序的基本单位为_C____。

A) 程序行B) 语句C) 函数D) 字符

2.用C语言编写的代码程序___B___。

A)可立即执行B)是一个源程序

C)经过编译即可执行D)经过解释就能执行

3.以下叙述中正确的是___C___。

A)用C程序实现的算法必须要有输入和输出操作

B)用C程序实现的算法可以没有输出但必须要输入

C)用C程序实现的算法可以没有输入但必须要有输出

D)用C程序实现的算法可以既没有输入也没有输出

4.在一个C程序中____B__。

A) main函数必须出现在所有函数之前

B) main函数可以在任何地方出现

C) main函数必须出现在所有函数之后

D) main函数必须出现在固定位置

5.以下叙述中错误的是____D___。

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

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

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

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

6.以下不正确的C语言标识符是_A__。

A) int B) a_1_2 C) ab1exe D) _x

7.将空格符(AscII码值为32)赋给字符变量c,正确的赋值语句是_D___。

A) c='\0' B) c=NULL C) c=0 D) c=32

8.以下选项中,值为1的表达式___B___。

A)1-…0?B)1-…\0? C)?1?-0D)?\0?-…0?

9.设有int x=11; 则表达式(x++ * 1/3) 的值是_A____。

A) 3 B) 4 C) 11 D) 12

10.已知int x=(1,2,3,4);变量x的值是_D___。

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

11.如果int a=1,b=2,c=3,d=4;则条件表达式"a

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

12.下列程序的输出结果是___D__。

A) 3 B) 3.2 C) 0 D) 3.07

main()

{ double d=3.2; int x,y;

x=1.2; y=(x+3.8)/5.0;

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

}

13.使用语句scanf("x=%f,y=%f",&x,&y);输入变量x、y的值(□代表空格),正确

的输入是__C__。

A) 1.25,2.4 B) 1.25□2.4C) x=1.25,y=2.4 D) x=1.25□y=2.4

14.若变量都已正确定义,则程序段___C___。

a=3;b=4;

a>b?printf("* * *a=%d",a++); printf("# # #b=%d",b++);

A) 输出为:* * * a=4 B) 输出为:* * * a=3

C) 输出为:# # # b=4 D) 输出为:# # # b=5

15.设int x=1,y=1;则表达式(x||- -y)运算完毕后,y的值是__B___。

A) 0 B) 1 C) 2

D) –1

16.关系表达式a≤x<b的正确描述是_B___。

A)a<=x=a&&x=a||x=b)

17.为判断字符变量c的值不是数字也不是字母时,应采用下述表达式__D__。

A) c<=48||c>=57&&c<=65||c>=90&&c<=97||c>=122

B) !(c<=48||c>=57&&c<=65||c>=90&&c<=97||c>=122)

C) c>=48&&c<=57||c>=65&&c<=90||c>=97&&c<=122

D) !(c>=48&&c<=57||c>=65&&c<=90||c>=97&&c<=122)

18.把以下四个表达式用作if语句的控制表达式时,选项____A___与其它三个选

项含义不同。

A)k%2 B)k%2==1 C)(k%2)!=0 D)!k%2==1

19.下列条件语句中,功能与其他语句不同的是_D____。

A) if(a) printf("%d\n",x); else printf("%d\n",y);

B) if(a==0) printf("%d\n",y); else printf("%d\n",x);

C) if (a!=0) printf("%d\n",x); else printf("%d\n",y);

D) if(a==0) printf("%d\n",x); else printf("%d\n",y);

20.在嵌套使用if语句时,C语言规定else总是___C_____。

A)和之前与其具有相同缩进位置的if配对

B)和之前与其最近的if配对

C)和之前与其最近的且不带else的if配对

D)和之前的第一个if配对

21.以下程序段中与语句k=a>b?(b>c?1:0):0;功能等价的是__D______。

A) if((a>b) &&(b>c) ) k=1; B) if((a>b) ||(b>c) ) k=1;

else k=0; else k=0;

C) if(a<=b) k=0; D) if(a>b) k=1;

else if(b<=c) k=1; else if(b>c) k=1;

else k=0;

22.已知int i=1,j=0;执行下面语句后j的值是__D__。

while(i)

switch(i)

{ case 1: i+=1;j++;break;

case 2: i+=2;j++;break;

case 3: i+=3;j++;break;

default: i--;j++;break;

}

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

循环

23.下面的for语句___A___ 。

for(x=0,y=10;(y>0)&&(x<4);x++,y-- ) ;

A) 是无限循环B) 循环次数不定

C) 循环执行4次D) 循环执行3次

24.已知int i=1;执行语句while (i++<4) ;后,变量i的值为__C__。

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

25.若变量已正确定义,要求程序段完成求5!的计算,不能完成此操作的程序段

是__B___。

A)for(i=1,p=1;i<=5;i++) p*=i;

B)for(i=1;i<=5;i++){ p=1; p*=i;}

C)i=1;p=1;while(i<=5){p*=i; i++;}

D)i=1;p=1;do{p*=i; i++; }while(i<=5);

26.以下程序执行后的输出结果是__D____。

main()

{int y=10;

while(y--);printf("y=%d\n",y);

}

A)y=0 B)y=-1

C)y=1 D)while构成无限循环

27.有以下程序段,为使此程序段不陷入死循环,从键盘输入的数据应该是

__D____。

int n,t=1,s=0;

scanf("%d",&n);

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

A)任意正奇数B)任意负偶数C)任意正偶数D)任意负奇数

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

main( )

{ int i,s=0;

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

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

}

28.下述对C语言字符数组的描术中错误的是__D____。

A)字符数组可以存放字符串

B)字符数组中的字符串可以整体输入、输出

C)可以在赋值语句中通过赋值运算符“=”对字符数组整体赋值

D)不可以用关系运算符对字符数组中的字符串进行比较

29.若要求定义具有10个int型元素的一维数组a,则以下定义语句中错误的是

__D____。

A)#define N 10 B)#define n 5

int a[N]int a[2*n]

C)int a[5+5]D)int n=10,a[n]

30.设有数组定义:char array [ ]="China";则数组array所占的空间为__C____。

A)4字节B)5字节C)6字节D)7字节

31.字符数组str赋初值,str不能作为字符串使用的一个是__D_

A) char str[]="shanghai";

B) char str[]={"shanghai"};

C) char str[9]={'s','h','a','n','g','h','a','i'};

D) char str[8]={ 's','h','a','n','g','h','a','i'};

32.已有定义:char a[]="xyz",b[]={'x','y','z'};,以下叙述中正确的是__C____。

A)数组a和b的长度相同B)a数组长度小于b数组长度

C)a数组长度大于b数组长度D)上述说法都不对

33.下述对C语言字符数组的描术中错误的是__C____。

A)字符数组可以存放字符串

B)字符数组中的字符串可以整体输入、输出

C)可以在赋值语句中通过赋值运算符“=”对字符数组整体赋值

D)不可以用关系运算符对字符数组中的字符串进行比较

34.设有数组定义:char array [ ]="China";则数组array所占的空间为__C____。

A)4字节B)5字节C)6字节

D)7字节

35.已有定义:char a[]="xyz",b[]={'x','y','z'};,以下叙述中正确的是___C___。

A)数组a和b的长度相同B)a数组长度小于b数组长度

C)a数组长度大于b数组长度D)上述说法都不对

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

char fun(char x , char y)

{ if(x

return y;

}

main( )

{ int a=?9?,b=?8?,c=?7?;

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

}

A) 函数调用出错B)8 C)9 D)7

37.设函数fun的定义形式如下,则以下对函数fun的调用语句中,正确的是__D___

void fun(char ch, float x ) { … }

A) fun("abc",3.0); B) t=fun('D',16.5);

C) fun('65',2.8); D) fun(32,32);

38.设int a,*p;则语句p=&a;中的运算符“&”的含义是__D____

A)位与运算B)逻辑与运算C)取指针内容D)取

变量地址

39.已知:int a, *y=&a;要对变量a进行输入输出,则下列函数调用中错误的是

_______ 。

A) scanf("%d", &a);B) scanf("%d", y);

C) printf("%d", a);D) printf("%d", y);

40.设有定义:int n1=0,n2,*p=&n2,*q=&n1;,以下赋值语句中与n2=n1;语句等价

的是__A___。

A)*p=*q; B)p=q; C)*p=&n1; D)p=*q;

二、填空题

1.下面程序的功能是输入一个三位数,将它反向输出,如输入258,输出852。

main()

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

scanf(“%d”,&x);

a =x/100;

b=x/10-a*10;

c=x%10;

y=100*c+10*b+a;

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

}

2.填空使运行结果为a=2,b=1

main()

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

switch(x)

{ case 1:

switch(y)

{ case 0: a++ ; break;

case 1: b++; break;

}

case 2: a++;b++; break;

case 3: a++;b++;

}

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

}

3.将大写字母改为小写字母

#include

main()

{

char a;

scanf(“%c”,&a);

if( a>=…A? && a<=…Z? )

printf(“%c”, a+32);

else

printf(“please input right char!\n”);

}

4.下面程序的功能是计算n!。

main()

{

int i,n;

float fac;

fac=1;

scanf("%d",&n);

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

fac=i*fac;

printf("%.0f\n",fac);

}

5.从键盘输入一个正整数,如果它是素数,则输出该数,否则输出该数的所有因子(除去1和自身)

main()

{ int m,i,flag;

flag=1;

scanf("%d",&m);

for(i =2; i

if(__m%i==0__________)

{flag=0;printf("%5d",i);}

printf("\n");

if(___flag!=0_________) ???

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

}

6.有一分数序列:2/1,3/2,5/3,8/5,13/8,21/13,…

求出这个数列的前20项之和*/

main()

{ int i ,t,n=20;

float a=2,b=1,__s=0_____________;

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

{ s=s+a/b;

t=a_______________;

a=a+b;

b=t_______________;_}

printf("sum=%9.6f\n",s);

}

7.把100~200 之间的不能被3 整除的数打印出来.

main()

{

int n;

printf("不能被3整除的数是:\n");

for(__n=100______;n<=200;n++)

{

if(n%3==0)

_continue______;

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

}

}

8.求sn=a+aa+aaa+…+a…a,其中a是一个一位整数。

main()

{long int s=0,t;

int a,n,i;

_scanf(“%d%d”,&a,&n)_______;

t=a;

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

{

s+=t;

_t=t*10+a______

}

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

}

9.下面程序的功能是求10个数平均值。

float av(float a[],int n)

{

int i;float s=0;

for(i=0;i

s=s+a[i];

return (s/n);

}

main()

{ int i;

float a[10];

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

scanf("%f",&a[i]);

printf("%f",av(a,10));

}

10.下面程序的功能是计算100~1000之间有多少个这样的整数:它的各位数

字之和等于5。

int f(int m )

{ int a,b,c,d;

a=m/100;

b=(m-a*100)/10;

c=m%10;

d=a+b+c;

___return(d)_________;

}

main()

{ int n,count=0;

for(n=100;n<1000;n++)

if(___f(n)==5_________) count++;

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

}

}

11.求二分之一的圆面积,函数通过形参得到圆的半径,函数返回二分之一的圆面积(注意:圆面积公式为:S=3.14159*r*r,在程序中定义的变量名要与公式的变量相同)。例如,输入圆的半径值:2.5,输出为s=9.817469。

#include

double fun ( float __r___ )

{

return 3.14159 * r*r/2.0 ;

}

main()

{

float x;

printf ( "Enter x: ");

scanf ( "%f", _&x____ );

printf (" s = %f\n ", fun ( x ) );

}

12.把数组a(大小为M)中前M-1个元素中的最小值放入a的最后一个元素中

#include

#define M 11

void main()

{ int a[M],i;

for(i=0;i

scanf("%d",&a[i]);

a[M-1]=a[0];

for(i=1; ___i

if(__ a[M-1>a[i]__)

a[M-1]=a[i];

printf("Max is %d\n",a[M-1]);

}

13.冒泡法排序

#define N 10

main()

{

int a[N];

int i,j,t;

printf("Input 10 numbers:\n");

for(i=0;i

Scanf(“%d”,&a[i]);

for(i=1;i

for(j=0;j

if(a[j]>a[j+1])

{

t=a[j];

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

a[j+1]=t;

}

printf("The sorted numbers:\n");

for(i=0;i

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

printf("\n");

}

14.输入10个数,输出其中的最大值和最小值

#define N 10

main()

{

int i,a[N],max,min;

printf("Input Data:\n");

for(i=0;i

scanf("%d",&a[i]);

max= min=a[0];

for(i=1;i

{

if(max

if (min>a[i] min=a[i]);

} printf("Max=%d,Min=%d",max,min);

}

15.将两个数按大小顺序输出,程序为;

main()

{int a, b, *p1, *p2, t;

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

P1=&a;p2=&b;

if(*p1>*p2) { t =*p1; *p1=*p2;*p2=t }

printf("%5d%5d", a,b );

}

16.输入一行字符,求其中字母、数字、空格和其它字符的个数(函数实现)。

#include"stdio.h"

#include"string.h"

void pro(s,n,p1,p2,p3,p4)

char str[80]??

{

int i;

for(i=0;i

if((s[i]>=?a?&&s[i]<=?z?)||(s[i]>=?A?&&s[i]<=Z)) (*p1)++;

else if(s[i]>='0'&&s[i]<='9') (*p2)++;

else if(s[i]==' ') (*p3)++;

else (*p4)++;

}

main()

{

char str[80];

int n1,n2,n3,n4;

gets(str);

n1=n2=n3=n4=0;

pro(str,strlen(str),&n1,&n2,&n3,&n4);

printf("N1=%d,N2=%d,N3=%d,N4=%d\n",n1,n2,n3,n4);

}

三、读程序题

1.#include "stdio.h"

void main()

{

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

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

else printf("# # # # #\n");x=1

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

}

2.#include "stdio.h"

void main()

{

int i,j,k=19;

while(i=k-1)

{

k-=3;

if(k%3==0)

{

i++;

continue;

}

else

if(k<5) break;

j=++i;

}

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

}

3. 从键盘输入15002,运行结果为

#include "stdio.h"

void main()

{

long m,p,q,t;

p=q=0;

scanf("%ld",&m);

do

{

t=m%10;

if(t= =0) p++;Count=2,Max=5

else

if(q<=t) q=t;

m/=10;

}while(m);

printf("Count=%ld,Max=%ld\n",p,q); }

4. 从键盘输入1 2 3 4 5 -1,程序运行结果为

#include "stdio.h"

void main()

{

int k=0,n;

Do k=14 n=-1

{

scanf("%d",&n);

k+=n;

}while(n!=-1);

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

}

5. 程序的运行结果为

#include "stdio.h"

void main()

{

long int f1,f2;

int i;

f1=1;1 1 2 3

f2=1;5 8 13 21

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

{

printf("%ld %ld ",f1,f2);

if (i%2==0) printf("\n");

f1=f1+f2;

f2=f2+f1;

}

}

6. 程序运行结果为

#include "stdio.h"

void main()

{

int i; *

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

switch(i%2)

{

case 0:i++;printf("#");break;

case 1:i+=2;printf("*");

default:printf("\n");

}

}

7. 程序运行结果为

#include "stdio.h"

void main()

{

int i,j=4,n=0;

for(i=j;i<=4*j;i++)

{ * * * *

switch(i/j)# # # #

{

case 0:

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

case 2:printf("#");

}

n++;

if(n%j==0) printf("\n");

}

}

8. 写出程序运行结果

#include "stdio.h"

void main()

{

int i,j,k=19;

while(i=k-1)

{

k-=3;

if(k%3==0)

{ j=10,k=4

i++;

continue;

}

else

if(k<5) break;

j=++i;

}

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

}

9. 写出程序运行结果

#include "stdio.h"

void main()

{

int a,y;

a=1;y=0;

do

{

a+=2;a=6,y=15

y+=a;

if(y>10) break;

}while(a=4);

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

}

10. #include "stdio.h"

void main()

{

int a[10]={10,12,13,14,15,16,17,18,19,11};

int k,s,i;

float ave;

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

{

if(a[i]%2==0) 5,15.000000

continue;

s+=a[i];

k++;

}

if(k!=0)

{

ave=(float)s/k;

printf("%d,%f\n",k,ave);

}

}

11. #include "stdio.h"

void main()

{

char str[]="ssswlia",c;

int k;

for(k=2;(c=str[k])!='\0';k++)

{

switch(c)

{

case 'i':++k;break;

case 'l':continue;

default:putchar(c);continue;

}

putchar('*');

}

printf("\n");

}

12. #include "stdio.h"

void main()

{

int i;

char a[]="Time",b[]="Tom";

for(i=0;a[i]!='\0'&&b[i]!='\0';i++)t*M

if(a[i]==b[i])

if(a[i]>='a'&&a[i]<='z')

printf("%c",a[i]-32);

else printf("%c",a[i]+32);

else printf("*");

printf("\n");

}

13. main()

{ char s[]="abcdef";abc

s[3]=…\0';

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

}

14. #include "stdio.h"

int func(int a,int b);

void main( )

{

int k=4,m=1,p;

p=func(k,m);

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

p=func(k,m);

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

}

int func(int a,int b)

{

int m=0,i=2;

i+=m+1;

m=i+a+b;

return m;

}

15. #include "stdio.h"

void f(int v,int w)

{

int t;

t=v;v=w;w=t;

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

}

void main()

{

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

if(x>y)f(x,y);

else if(y>z) 3,1

f(y,z);1,2,3

else f(x,z);

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

}

16. #include "stdio.h"

void fun(int a,int b)

{ static int x=3;

a=a+b;

x*=a;

printf("a=%d,b=%d,x=%d\n",a,b,x);a=3,b=2,x=9

} a=4,b=2,x=36

void main()

{ int c;

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

fun(c,2);

}

四、程序设计题

1.有一分段函数

????

?????≥+<≤--<-=22122sin 221ππππππx x x x x x y 编写程序,输入x ,计算并输出y 。

2. 编写程序求数列:100

99...654321++++的值。 3.编写程序,判断正整数m 是否素数。

4.将字符串中所有的大写字母转换为小写,其它字符不变(不使用转换函数)。 例如,当字符串为"This Is a c Program"

输出:"this is a c program"

5.将字符串逆序存放并输出。

例如,当字符串为"This Is a c Program"

输出:"margorP c a sI sihT"

6.打印1000以内所有的水仙花数。水仙花数是指一个数的各位数字的立方和等于它自己的整数。如:

153=13+53+33,因此153是水仙花数。

7. 编写一个子函数实现删除某个串中的字符,并统计删除字符的个数。

8.用指针方法编写一个程序,输入3个整数,将它们按由小到大的顺序输出。

3 判断一个数是否为素数

#include

#include

main()

{ int n,k ,i

scanf()

C语言试卷2及答案

扬州大学试题纸 系课程 C语言程序设计(A)卷2002—2003学年第2学期 班级_________学号________姓名__________得分___________ 一、选择题(每题分,共30分): 1、已知:char a; int b; float c; double d; 则执行语句:c=a+b+c+d; 后,变量c的类型为。 A. char B. int C. float D. double 2、已有定义int x; float y; 且执行scanf(“%2d%f”,&x,&y);语句时, 从第一列开始输入数据12345 67<回车>,则y的值是。 A. 无定值 B. 345.00000 C. D. 3、设有以下程序段 int x=0; s=0; while (!x!=0) s+=++x; printf(“%d”,s); 则。 A. 运行程序段后输出0 B. 运行程序段后输出1 C. 程序段中的控制表达式是非法的 D. 程序段执行无限次 4、若i为整型变量,则以下循环执行次数是。 for(i=2; i==0;) printf(“%d”, i--); A. 无限次 B. 2次 C. 1次次 5、假设char ch=’a’, *p=&c h; ,以下语句中,有语法错误的是 . A. (*p)++; B. ch+=—‘a’+’A’; C. toupper(ch)=ch; D. ch++; 6、若说明:char *language[ ]={“VFP”,”C”,”VB”,”VC”,”JAVA”}; 则language[2]的值是。 A. 一个字符 B. 一个地址 C. 一个字符串 D. 一个不定值 7、C语言程序中,当调用函数时。 A. 实参和虚参可以共用存储单元 B. 实参和虚参各占一个独立的存储单元 C. 可以由用户指定是否共用存储单元 D. 由计算机系统自动确定是否共用存储单元 8、在程序中要使用语句:printf(“%s\n”, STRING); 输出提示信息:“OK! ”(包括双引号),则应使用宏定义语句。 A. #define STRING “OK!” B. #define STRING “”OK!”” C. #define STRING \”OK!\” D.以上三个答案都是错误的 9、数组和链表都可以用于存储一组数据,以下说法不正确的是_____________。 A. 数组占用连续的一块存储区域,链表可能占用若干不连续的存储区域 B. 数组和链表所占用的存储区域均不能在程序运行期间动态分配 C. 数组中的数据可以随机存取或顺序存取,链表中的数据只能顺序存取 D. 数组的长度是固定的,链表的长度是不固定的。 10、已知语句FIL E *fp; char ch= ‘c’;fp=fopen(“”,”w”);如果需要将ch的值保存到一个磁盘文件中,

C语言题库及答案

C语言题库及答案

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

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

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语言复习题-2010 1~5 ABCDB 6~10 BADAD 11~15 DABAB 16~20 ADDDC 1. 编程计算1!+2!+3!+……+n!的值,其中n的值由用户输入。 #include main() { long term = 1,sum = 0; int i,n; scanf(“%d”,&n); for (i = 1; i <= n; i++) { term = term * i; sum = sum + term; } printf("1!+2!+...n! = %ld \n", sum); } 2. 从键盘任意输入某班20个学生的成绩,打印最高分,并统计不及格学生的人数。要求按如下函数原型进行编程,分别计算最高分和统计不及格学生的人数:int FindMax(int score[], int n); int CountFail(int score[], int n); #include int FindMax(int score[], int n); int CountFail(int score[], int n); main() { int i, score[20],max,count; for (i=0; i<20; i++) { scanf("%d",&score[i]); } max = FindMax(score, 20); printf("max = %d\n",max); count = CountFail(score, 20); printf("count = %d\n",count); } int FindMax(int score[], int n) { int max,i;

C语言试题及答案

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

大学c语言考试题库含答案

================================================== 题号:1482 执行以下程序段后,输出结果和a的值是()。int a=10; printf("%d",a++); A、11 和10 B、11 和11 C、10 和11 D、10 和10 答案: C 题号:2100 已知字符'A'的ASCⅡ代码值是65,字符变量c1的值是'A',c2的值是'D'.执行语句printf("%d,%d",c1,c2-2);后,输出结果是 A、65,66 B、A,B C、65,68 D、A,68 答案: A 题号:5055 相同结构体类型的变量之间,可以()。 A、比较大小 B、地址相同 C、赋值 D、相加 答案: C 题号:3217 int a[10];合法的数组元素的最小下标值为()。 A、1 B、0 C、10 D、9 答案: B

能正确表示逻辑关系:" a≥10或a≤0 "的C语言表达式是 A、a>=0 | a<=10 B、a>=10 or a<=0 C、a>=10 && a<=0 D、a>=10 || a<=0 答案: D 题号:157 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",a,b); }该程序的输出结果是( ) A、2,2 B、2,1 C、1,1 D、1,0 答案: B 题号:4784 设变量a是整型,f是实型,i是双精度型,则表达式10+'a'+i*f值的 数据类型为()。 A、不确定 B、double C、int D、float 答案: B 题号:1647 以下程序中,while循环的循环次数是______ main() { int i=0;

(完整版)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语言基础练习题(含答案)Word版

第一章C语言基础知识 1.1 选择题 1. 以下不是C语言的特点的是()。B A、语言简洁紧凑 B、能够编制出功能复杂的程序 C、C语言可以直接对硬件操作 D、C语言移植性好 2. 下列字符序列中,不可用作C语言标识符的是()。B A.abc123 B.no.1 C._123_ D._ok 3. 正确的C语言标识符是()。A A._buy_2 B.2_buy C.?_buy D.buy? 4. 请选出可用作C语言用户标识符的一组标识符()。B A.void B.a3_b3 C.For D.2a define _123 -abc DO WORD IF Case sizeof 5. 下列符号中,不属于转义字符的是()。B A.\\ B.\0xAA C.\t D.\0 6. 不属于C语言关键字的是()。d A.int B.break C.while D.character 7. 是C语言提供的合法关键字的是()。b A.Float B.signed C.integer D.Char 8. 以下不能定义为用户标示符的是()。b A.scanf B.Void C._3com_ D.int 9. 一个C程序是由()。 b A.一个主程序和若干子程序组成 B.一个或多个函数组成 C.若干过程组成 D.若干子程序组成 10. C语言程序的基本单位是()。 c A.程序行 B.语句 C.函数 D.字符 11. 下列说法中,错误的是()。 a A.每个语句必须独占一行,语句的最后可以是一个分号,也可以是一个回车换行符号B.每个函数都有一个函数头和一个函数体,主函数也不例外 C.主函数只能调用用户函数或系统函数,用户函数可以相互调用 D.程序是由若干个函数组成的,但是必须有、而且只能有一个主函数 12. 以下说法中正确的是()。 c A.C语言程序总是从第一个定义的函数开始执行 B.在C语言程序中,要调用的函数必须在main( )函数中定义 C.C语言程序总是从main( )函数开始执行

C语言程序设计模拟试题2(附答案)new

《C语言程序设计》模拟试卷二 一、填空题。(每空2分,共30分) 1.设有变量说明语句 int x=1,y=2; 则执行下述printf语句的输出结果是______ _____。 printf("%f\n",1.0+x/y); 2.执行下述程序 #include main() { int x,y; scanf("%2d%*2s%1d",&x,&y); printf("%d\n",x+y); } 若从键盘输入 12345671 则程序的输出结果是________。 3.以下程序的功能是:从键盘上输入若干名学生的成绩(百分制,可带小数,以输入负数或0为结束标志),统计并输出最高成绩和最低成绩。请填空。 #include main() { float x,amax,amin; scanf("%f",&x); amax=x; amin=x; while ( ) { if (x>amax) amax=x; else if (x

} 4.设n 是整型变量,且已具有某正整数值。根据下述数学式 1 1 14131312121+? ++?+?+n n 求s 的值并输出。 可编写如下之程序段实现之。请填空。 int k; double s,d; s=0.0; d=1.0; K=0; do { s=s+d; ___ _________; d=1.0/(k*(k+1)); } while (k<=n); printf("%f\n",s); 5.执行下述程序的输出结果是____ ____。 #inclued main() { int a[6],i; for (i=0;i<6;i++) { a[i]=9*(i-2+4*(i>3))%5; printf("%3d",a[i]); } printf("\n"); } 6.执行下述程序时的输出结果是_________ ________。 #include main() { int a[]={2,4,6,},*ptr=&a[0],x=8,y,z; for (y=0;y<3;y++) z=(*(ptr+y)

C语言1-5章复习题及参考答案

一.选择题 1、若a为int类型,且其值为3,则执行完表达式a+=a-=a*a后,a的值是()。 A .-3 B.9 C.-12 D.6 2、若有定义:int a=8, b=5, c; 执行语句 c=a/b+0.4; 后,c的值为()。 A .1.4 B.1 C.2.0 D.2 3、有如下程序: void main() { int i,sum; for(i=1;i<=3;sum++) sum+=i; printf("%d\n",sum); } 该程序的执行结果是()。 A .6 B.3 C.死循环 D.0 4、下列关于表达式的描述中,错误的是()。 A . 常量和变量都是表达式。 B. 运算符类型对应表达式的类型。 C. 每一个表达式都有自己的值。 D. 表达式必须以分号结尾。 5、C语言中,合法的长整型常数是()。 A . '\t' B.” A” C.65 D.a 6、若已定义 x 和 y为double 类型,则表达式 x=1;y=(x+3)/2 的值是()。 A .1 B.2 C.2.00000 D.2.50000 7、表达式:10!=9的值是()。 A . true B. 非零值 C.0 D.1 8、以下程序的输出结果是()。 #include void main() { printf("%d\n", NULL); } A . 不确定的 B.0 C.-1 D.1 9、请选出合法的C语言赋值语句。() A . a=b=58 B.i++; C. a=58,b=58 D. k=int(a+b); 10、假设 int b=2; 表达式(b>>2)/(b>>1)的值是()。 A .0 B.2 C.4 D.8 11、关于语句printf(“hello world\n”);,下列描述中错误的是()。 A . printf()是格式化输出函数,用于输出信息。 B. printf()括号中的内容为函数的参数。 C. printf()括号中的内容会全部输出到控制台上。 D. \n表示换行操作。 12、下列选项中,哪一项不是C语言中的位运算符()。 A .& B.|| C.~ D.^ 13、以下程序的输出结果是()。 void main()

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语言试题及答案 ()

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

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

C语言练习题(带答案)-绝对经典题目不看后悔

1单选题 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)。 A.-a1 B.a[i] C.a2_i D.int t 5~8题为相同类型题 考点:标识符的命名规则 (1)只能由字母、数字、下划线构成 (2)数字不能作为标识符的开头 (3)关键字不能作为标识符 选项A中的“-” ,选项B中“[”与“]”不满足(1);选项D中的int为关键字,不满足(3) 6.下列C语言用户标识符中合法的是(B)。 A)3ax B)x C)case D)-e2 E)union 选项A中的标识符以数字开头不满足(2);选项C,E均为为关键字,不满足(3);选项D中的“-”不满足(1); 7.下列四组选项中,正确的C语言标识符是(C)。 A)%x B)a+b C)a123 D)123 选项A中的“%” ,选项B中“+”不满足(1);选项D中的标识符以数字开头不满足(2) 8、下列四组字符串中都可以用作C语言程序中的标识符的是(A)。 A、print _3d db8 aBc B、I\am one_half start$it 3pai C、str_1 Cpp pow while D、Pxq My->book line# His.age 选项B中的“\”,”$” ,选项D中“>”,”#”,”.”,”-”不满足(1);选项C中的while为关键

C语言习题及解答-2-1

C语言概述 一.选择题 1.下列选项中,合法的C语言关键字是 A) VAR B) cher C) integer D) default 2.请选出可用作C语言用户标识符的一组标识符____ A) Void define WORD B) a3_b3 _123 IF C) For -abc Case D) 2a Do sizeof 3.C语言提供的合法的数据类型关键字是____ A) Double B) short C) integer D) Char 4.在下列字符中,不可用作C语言标识符的是 A) water B) price C) a>b D) a12 5.一下叙述正确的是 A) C语言比其他高级高级 B) C语言可以不用编译就能被计算机识别执行 C) C语言以接近英语国家的自然语言和数学语言作为语言的表达形式 D) C语言出现的最晚、具有其他语言的一切优点 6.在一个C语言程序中 A) main函数必须出现在所有函数之前 B) main函数可以在任何地方出现 C) main函数必须出现在所有函数之后 D) main函数必须出现在固定位置 7.下列符号不属于C语言保留字的是 A) if B) then C) static D) for 8.下列说法正确的是 A) 主函数名main是由程序设计人员按照“标识符”的命名规则来选取的 B) 分号和回车符都可以作为语句的结束符号 C) 在程序清单的任何地方都可以插入一个或多个空格符号 D) 程序的执行总是从主函数main()开始的 参考答案 1.D 2.B 3.B 4.C 5.C 6.B 7.B 8.D 数据类型与表达式 一.选择题 1. 下列字符序列中,不可用作C语言标识符的是()。 A)abc123 B)no.1 C)_123_ D)_ok 2. 正确的C语言标识符是()。 A)_buy_2 B)2_buy C)?_buy D)buy?

C语言函数题库及答案

C语言函数题库及答案 Company Document number:WTUT-WT88Y-W8BBGB-BWYTT-19998

第六部分函数 一、单项选择题 1.C语言中的函数返回值的类型是由(D)决定 A.return语句中的表达式B.调用函数的主调函数 C.调用函数时临时D.定义函数时所指定的函数类型 2.下面不正确的描述是(B)。 A.调用函数时,实参可以是表达式 B.调用函数时,实参和形参可以共用内存单元 C.调用函数时,将形参分配内存单元 D.调用函数时,实参与形参的类型必须一致 3.在C语言中,调用一个函数时,实参变量和形参变量之间的数据传递是 (D) A.地址传递B.值传递 C.由实参传递给形参,并由形参传回给实参D.由用户指定传递方式 4.下面的函数调用语句中含有(A)个实参 inta,b,c; intsum(intx1,intx2); …… total=sum((a,b),c); A.2B.3C.4 D.5 5.在C语言中(C) A.函数的定义可以嵌套,但函数的调用不可以嵌套

B.函数的定义和调用均不可以嵌套 C.函数的定义不可以嵌套,但是函数的调用可以嵌套 D.函数的定义和调用均可以嵌套 6.关于C语言中的return语句正确的是(C) A.只能在主函数中出现 B.在每个函数中都必须出现 C.可以在一个函数中出现多次 D.只能在除主函数之外的函数中出现 7.两个形参中,第一个形参为指针类型、第二个形参为整型,则对函数形参的说明有错误的是(D) (floatx[],intn) (float*x,intn) (floatx[10],intn) (floatx,intn) 8.在C语言中,函数的数据类型是指(A) A.函数返回值的数据类型 B.函数形参的数据类型 C.调用该函数时的实参的数据类型 D.任意指定的数据类型 9.已知如下定义的函数: fun1(a) {printf("\n%d",a); } 则该函数的数据类型是(C)

C语言考试复习试题及参考答案

中南大学现代远程教育课程考试复习试题及参考答案 C语言程序设计 一、单项选择题 若以下各题所有库函数都可以合法使用,且变量定义如下: int m=5, i=3,j=2,*p, a=8,b=0; int arr[10]={0,1,2,3,4,5,6,7,8,9},td[ ][3]={1,2,3,4,5,6}; float x=2.5,y=3.0; double z=0; long n=1; char c=’A’,ch[20]={’a’,’b’,’c’,’\0’,’d’,’\0’}; struct student { int num; char name[20]; float score; struct student *next; }st1,st2,*ps;

FILE *fp; 1.若将3和10从键盘输入给变量a、x,输入语句为 scanf(“a=%d,x=%f”,&a,&x);正确的键盘输入是(↙表回车): A a=3,x=10↙ B 3,10↙ C 3 10↙ D 3,10.0↙ 2. 以下不是死循环的语句是: A for ( ;;y+=i++); B while(a) y+=i++ ; C do{ y+=i++}while (a>0); D for (b=0;(c=getchar()!=’\n’);)b++; 3.若p=arr;正确的语句是: A *p=arr[10]; B *p=arr[2*a]; C p=arr[5]; D p[i]=arr[0]; 4.若ps=&st1;则下面描述正确的是: A ps->num与st1->num等价。 B ps.num与st1.num等价。 C ps->num与num等价。 D ps->num与st1.num等价。 5.语句printf(“%d",aj);的输出结果是:

C语言考试题库及答案,推荐文档(2)

C 语言理论上机考试选择题部分(共200 题) 1、下面程序的输出是___D ______ #include void main() { int k=11; printf("k=%d,k=%o,k=%x\n",k,k,k); } A) k=11,k=12,k=11 B) k=11,k=13,k=13 C) k=11,k=013,k=0xb D) k=11,k=13,k=b 2、在下列选项中,不正确的赋值语句是__D _______ A) ++t; B) n1=(n2=(n3=0)); C) k=i=j; D) a=b+c=1; 3、下面合法的C 语言字符常量是_______ A ____ . A) '\t' B) "A" C) 65 D) A 4、表达式: 10!=9 的值是________ D ___ . A) true B) 非零值C) 0 D) 1 5、C 语言提供的合法的数据类型关键字是 B . A) Double B) short C) integer D) Char 6、字符(char) 型数据在微机内存中的存储形式是 __D__. A) 反码B) 补码C) EBCDIC 码D) ASCII 码 7、 C 语言程序的基本单位是 ____ C _____ . A) 程序行B) 语句C) 函数D) 字符 &设int a=12,则执行完语句a+=a-=a*a后,a的值是 ___ D ___ A) 552 B) 264 C) 144 D) -264 9、执行下面程序中的输出语句后,输出结果是B__. #include void main() {int a; printf("%d\n",(a=3*5,a*4,a+5)); } A) 65 B) 20 C) 15 D) 10 10 、下面程序的输出是____ B _____ . {int x=023; printf("%d\n",--x); } A) 17 B) 18 C) 23 D) 24 11 、下面程序的输出的是_____ C ___ . #include void main() {int x=10,y=3; printf("%d\n",y=x/y); } A) 0 B) 1 C) 3 D) 不确定的值 12、已知字母A 的ASCII 码为十进制的65,下面程序的输出是_____ A ____ . #include void main() {char ch1,ch2; ch1='A'+'5'-'3'; ch2='A'+'6'-'3'; printf("%d,%c\n",ch1,ch2); } A) 67,D B) B,C C) C,D D) 不确定的值 13、若要求在if 后一对圆括号中表示a 不等于0 的关 系,则能正确表示这一关系的表达式为_______ D__. A) a<>0 B) !a C) a=0 D) a 14、以下程序的输出结果是____ D _____. #include void main() { int x=10,y=10; printf("%d %d\n",x--,--y); } A) 10 10 B) 9 9 C) 9 10 D) 10 9 15、设有如下定义: int x=10,y=3,z; 则语句 printf("%d\n",z=(x%y,x/y)); 的输出结果是____ D ____ . A) 1 B) 0 C) 4 D) 3 16、为表示关系x > y > z,应使用C语言表达式 ___A___. 17、 C 语言中非空的基本数据类型包括_____ B ___ . A) 整型,实型,逻辑型B) 整型,实型,字符型 C) 整型,字符型,逻辑型 D) 整型,实型,逻辑型,字符型 #include void main() A) (x>=y)&&(y>=z) C) (x>=y>=z) B) (x>=y)AND(y>=z) D) (x>=y) & (y>=z)

2019二级C语言题库参考答案解析

2019年C语言考题答案 1、程序填空题 给定的程序的功能是调用fun 函数建立班级通讯录。通讯录中记录每位学生的编号、姓名和电话号码班级的人数和学生的信息从键盘读入,每个人的信息作为一个数据块写到名为myfile5.dat 的二进制中。 填空:( 1) STYPE(2)FILE(3)fp 改错:(1) for(i=0;i<=sl;i++)(2)t[2*sl]= 0“ 或t[sl+sl]= 0“ 编程: *c=(a/10)*1000+(b/10)*100+(a%10)*10+(b% 10); 2、程序填空题给定程序的功能是:从键盘输入若干文本 (每行不超过80 个字符),写到文件myfile4.txt 中,用-1 作为字符串输出输入的标志。然后将文件的内容读出显示在屏幕上。文件的读写分别由自定义函数ReadText 和Writetext 实现。 填空:(1)*fw(2)str (3) str 改错:(1)voidfun(longs,long*t)(2) s1=s1*10; 编程:int i,j=0,min=a[0].s; for(i=0;i

else if(min==a[i].s) b[j++]=a[i]; } return j; 3、程序填空题 给定程序中,函数fun 的功能是:讲自 然数1~10 以及它们的平方根写到名为myfile3.txt 的文本中,然后再按顺序读出显示在屏幕上。 填空:( 1) fp( 2)fclose(fp)(3)myfile3.txt 改错:( 1)for(i=j+1;i

C语言试题及答案

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

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

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