c语言 试卷3_有答案_c语言试卷3有答案

其他范文 时间:2020-02-27 15:20:49 收藏本文下载本文
【www.daodoc.com - 其他范文】

c语言 试卷3_有答案由刀豆文库小编整理,希望给你工作、学习、生活带来方便,猜你可能喜欢“c语言试卷3有答案”。

试卷

3一、选择题(共20题,每题2分,共40分)

1、有以下定义:

int a[4][3]={1,2,3,4,5,6,7,8,9,10,11,12}

int(*ptr)[3]=a,*p=a[0];

则下列能够正确表示数组元素a[1][2]的表达式是()。

A)*((*ptr+1)[2])B)*(*(p+5))

C)(*ptr+1)+

22、# include

{

}D)*(*(a+1)+2)void main()int a[3][3]={1,2,3,4,5,6,7,8,9}; int s=0,i;for(i=0;i

A)9B)12C)14D)153、设有说明语句:char a= '123abc';则变量a(A)包含7个字符)D)包含4个字符 B)包含6个字符C)包含5个字符

4、有以下程序段

int k=0

while(k=1)k++;

while 循环执行的次数是()

A)无限次B)有语法错,不能执行C)一次也不执行D)执行1次

5、在C语言中,()。

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

B)函数定义不可以嵌套,但函数调用可以嵌套

C)函数定义和调用均不能嵌套

D)函数定义和调用均可以嵌套

6、以下叙述正确的是()

A)do-while语句构成的循环不能用其它语句构成的循环代替。

B)do-while语句构成的循环只能用break语句退出。

C)用do-while语句构成的循环,在while后的表达式为非零时结束循环。

D)用do-while语句构成的循环,在while后的表达式为零时结束循环。

7、若有声明语句char ch=’a’,*pc=&ch;以下语句中,有语法错误的是。

A.(*pc)++B.ch+=-‘a’+’A’;C.toupper(ch)=ch; D.ch++;

8、以下关于函数叙述中,正确的是。

A.在函数体中可以直接引用另一个函数中声明为static类别的局部变量的值

B.在函数体中至少必须有一个return 语句

C.在函数体中可以定义另一个函数

D.在函数体中可以调用函数自身

9、以下数组声明语句中正确的是。

A.int a,a[n];B.int a[ ];

C.int a[2][3]={{1},{2},{3}};D.int a[ ][3]={{1},{2},{3}};

10、以下程序执行后的结果是()

A)9B)程序出错C)死机D)1

5#include

#defineAREA(x,y)x*y;

main()

{int i;

i=AREA(3+2,3)

printf(“%d”,i);}

11、以下程序的输出结果是(main())

{int b[3][3]={0,1,2,0,1,2,0,1,2},i,j,t=1;

for(i=0;i

for(j=i;j

t=t+b[j][j]];

printf(“%dn”,t);

}

A)3B)4C)1D)912、以下不能正确进行字符串赋初值的语句是()

A)char str[5]= “good!”;B)char str[ ]= “good!”;

C)char *str=“good!”;D)char str[5]={ 'g','o','o','d'};

13、以下关于switch语句和break语句的描述中,只有()是正确的。

A)在switch语句中必须使用break语句

B)在switch语句中,可以根据需要使用或不使用break语句

C)break语句只能用于switch语句中

D)break语句是switch语句的一部分

14、判断变量ch中的字符是否为数字字符,最简单的正确表达式是()。

A)ch>=0&&ch

C)ch>=’0’||ch=’0’&&ch

D)815、若执行以下程序时从键盘上输入9,则输出结果是(A)11B)10C)9

main()

{ int n;

scanf(“%d”,&n);

if(n++

else printf(“%dn”,n--);

}

16、若w=1,x=2,y=3,z=4;则条件表达式w>x?w:y:z的结果是()

A)4B)3C)2D)

117、设x、y、t均为int型变量,则执行语句:x=y=3;t=++x||++y;后y的值为()

A)不定值B)4C)3D)

118、以下程序的输出结果是(main()

{int x=023;

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

}

A)1819、下列4个函数中,()B)22C)23)能实现交换变量值的功能。

D)19 A)void fun_a(int x,int y){ int *p;

} {}*p=x;x=y;y=*p;B)void fun_b(int *x,int *y){ int *p;}{D)void fun_d(int x,int y)int p;p=x;x=y;y=p;}*x=*y;*y=*x;C)void fun_c(int *x,int *y)*x=*x+*y;*y=*x-*y;*x=*x-*y;

20、以下所列的各函数首部中,正确的是()

A)void play(var :integer,var b:integer)

B)void play(int a,b)

C)void play(int a,int b)

D)Sub play(a as integer,b as integer)

二、填空题(每空2分,共26分)

1、判断n是否是素数,若是,则返加1,否则返回0

int prim(int n)

{ int m;

for(m=2;m

return 0;

;

}

2、下述程序段是要实现在数组中查找最大元素和最小元素的下标,# include

void find(int *a,int n,int *max,int *min){ int i;*max=*min=0;for(i=1;ia[*max]);elseif(a[i]

}

void main()

{ int a [ ]={5,8,7,6,2,7,3};

int max,min;

find();

} printf(“nmax=%d,min=%d”,max,min);

3、下面的程序当输入为字符串”qwert?”时的输出结果是Main()

{ char c;

while((c=getchar())!=’?’)putchar(++c);

}

4、假设有如下语句:

int a;float b,c;

scanf(“%2d%3d%4f”,&a,&b,&c);

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

若从键盘输入:9876543210

则输出应为:

5、下面的函数用于实现将一个字符串按逆序存放。

Void convert(char s[])

{ char m;int i,j;for(i=0,j=strlen(s);i

{

m=s[i];s[i]=;

s[j-1]=m;

}

printf(“%sn”,s);

}

6、以下函数fun的功能是用选择排序法对数组的数据按从小到大的顺序排列。void fun(int a[ ],int n)

{int i,j,k,temp;

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

{ k=i;

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

if(a[j]

{temp=a[k];

a[k]=a[i];

a[i]=temp;}

}

}

7、函数fun,其功能是求两个整数的最大公约数

fun(int x,int y)

{int a,b,t,r;

a=x;

b=y;while()

{a=b;

}

return(b);

}

8、以下程序中,主函数调用了LineMax函数,实现在N行M列的二维数组中,找出每一行上的最大值。请填空。

#define N

3#define M

4void LineMax(int x[N][M])

{ int i,j,p;

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

{ p=0;

for(j=1;j;j++)

if(x[i][p];

printf(“The max value in line %d is %dn”,i,x[i][p]);

}}

main()

{ int x[N][M]={1,5,7,4,2,6,4,3,8,2,3,1};;

}

三、判断题(每题2,共20分)

()1、C语言允许在复合语句内定义自动变量。

()2、全局变量可以和局部变量重名,且全局变量优先。

()3、若一个函数的返回类型为void,则表示其没有返回值。

()4、在程序运行过程中,系统分配给实参和形参的内存单元是相同的。

()5、对于Continue 和break这两条语句,只有break可用来实现循环体的中止。

()6、已知:char c='A';int i=1,j;执行语句j=!c&&i++;则i和j的值分别是0,1

()7、所有定义在主函数之前的函数无需进行声明。

()8、&既可以用作单目运算符也可以用作双目运算符

()9、宏定义和文件包含都是C语言中的编译预处理命令,对它们的处理是在编译前完成的。

()10、一个函数利用return不可能同时返回多个值。

四、编程题:(14分)

编程打印如下的杨辉三角形,具体要求如下:

(1)从主函数中输入欲打印的杨辉三角形行数;

(2)用子函数实现杨辉三角形的显示;

211331

14641

1 5101051

1615201561

„„

************************************************************************** 答案:

一、选择题

1、D2、D3.D4,A5.B

6.D7.C8.D9.C10.A

11.B12.A13.B14.D15.B

16.B17.C18.A19.A20.C

二、填空题

1.n%m==0;return 1;

2、*max=i

*min=i

a,7,&max,&min

3.rxfsu

4.a=98,b=765.000000,c=4321.000000

6.j

7.(r=a%b)!=0b=r

8.x[i][p]=x[i][j];LineMax(x)

三、判断题

对,错,对,错,对,对,对,错,对,对

四、略

下载c语言 试卷3_有答案word格式文档
下载c语言 试卷3_有答案.doc
将本文档下载到自己电脑,方便修改和收藏。
点此处下载文档

文档为doc格式

    热门文章
      整站推荐
        点击下载本文