admin管理员组

文章数量:1532656

2024年6月29日发(作者:)

2021-2022学年江西省宜春市全国计算机等

级考试C语言程序设计真题一卷(含答

案)

学校:________ 班级:________ 姓名:________ 考号:________

一、单选题(12题)

1. 以下程序中函数reverse 的功能是将a所指数组中的内容进行逆置。

void reverse(int a [ ], int n){ int i, t; for(i=0;i<n/2;i++) {t=a[i]; a[i] =a[n-1-

i];a[n-1-i]=t; }}main(){ int b[10]={1,2,3,4,5,6,7,8,9,10}; int i, s=0;

reverse(b,8); for(i=6;i<10;i++) s+=b[i]; printf("%dn", s);} 程序运行后的

输出结果是

A.22 B.10 C.34 D.30

2.现在有16枚外形相同的硬币,其中一枚是假币,且已知假币比真币重

量轻。先给定一架没有砝码的天平,问至少需要多少次称量才能找到这

枚假币?

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

3. 有下列程序:

int fun(int n)

{if(n= =1))return l;

else

return(n+fun(n-1)):

}

main( )

{ int x;

seanf("%d",&x);x=fun(x);printf("%d\n",x);

}

执行程序时,给变量x输入l0,程序的输出结果是( )。

A.55

B.54

C.65

D.45

4.有以下程序

main()

{ int i,s=0,t[]={l,2,3,4,5,6,7,8,9};

for(i=0;i<9;i+=2) s+=*(t+i);

printf(" % dn",s);

}

程序执行后的输出结果是

A.A.45 B.20 C.25 D.36

5.设有以下语句:

int a=1,b=2,c;

c=a^(b<<2);

执行后,c的值为( )。

A.6 B.7 C.8 D.9

6.若一组记录的排序码为(7,9,3,5,1,2,10),则利用堆排序的方法建立的初

始堆为()

A.10,7,9,3,5,1,2

B.10,9,7,5,1,2,3

C.10,9,7,5,3,2,1

D.10,9,7,3,2,1,5

7. 在一个C程序中

函数必须出现在所有函数之前

函数可以在任何地方出现

函数必须出现在所有函数之后

函数必须出现在固定位置

8. 以下四个选项,不能看作一条语句的是( )。

A.{;} B.a=0,b=0,c=0; (a>0); (b= =0) m=1;n=2;

9. 检查软件产品是否符合需求定义的过程称为( )。

A.确认测试 B.集成测试 C.验证测试 D.验收测试

10.结构化程序设计的3种结构是( )。

A.顺序结构、选择结构、转移结构

B.分支结构、等价结构、循环结构

C.多分支结构、赋值结构、等价结构

D.顺序结构、选择结构、循环结构

11. 若x、y、z、m均为int型变量,则执行下面语句后m的值是( ) m=

1;x=2;y=3; m=(m<x)?m:x; m=(m<y)?m:y; m=(m<y)?m:z;

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

12.结构化程序的3种基本控制结构是()。

A.递归、堆栈和队列 B.过程、子程序和函数 C.顺序、选择和重复 D.调

用、返回和转移

二、2.填空题(12题)

13. 下述函数用于统计一行字符中的单词个数,单词之间用空格分隔。

word num (str)

char str[];

{int i,num=0,word=0;

for(i=0;str[i]!=【 】;i++)

if(【 】==)word=0;

else if(word==0)

{

word=1;

【 】;

}

return(num);

}

14. 在数据结构中,顺序存储结构的数据元素所占的存储空间是______

的。

15. 按照逻辑结构分类,数据结构可分为线性结构和非线性结构,队列

属于______。

16. 若有以下程序:

main()

{ char a;

a='H'-'A'+'0';

printf("%cn",a);

}

执行后的输出结果是【 】。

17. 程序的运行结果为【 】。

main()

{ int x,y,z;

x=24;

y=024;

z=0x24;

printf("%d,%d,%dn",x,y,z);

}

18. 以下程序中,for循环体执行的次数是【 】。

#define N 2

#define M N+1

#define K M+1*M/2

main()

{

int i;

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

{…}

}

19. 栈的3种基本运算是:入栈、退栈和______。

20. 13'在内存中占1个字节,"12"在内存中占______个字节。

21.以下程序的功能是输入任意整数给n后,输出n行由大写字母A开

始构成的三角形字符阵列图形。例如,输入整数5时(注意:n不得大于

10),程序运行结果如下:

A B C D E

F G H I

J K L

M N

O

请填空完成该程序。

main()

{ int i,j,n;char ch='A';

scanf("%d",&n);

if(n<11)

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

{for(j=1;j<n-i+1;j++)

{printf("%2c",ch);

[10] ;

}

[11] ;

}

22. 下列程序的功能是计算数的阶乘。

main()

{ iht i,n;

nlong np;

scanf("%d",&n);

np=【 】;

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

【 】;

printf("n=%d n!=%ldn",n,np);

}

23. 设有定义:FILE *fw;,请将以下打开文件的语句补充完整,以

便可以向文本文件的最后续写内容。

fw=fopen("",【 】);

24. 在树形结构中,树根结点没有______。

三、3.程序设计题(10题)

25. 请编写函数fun,其功能是:计算并输出3到n之间(含3和n)所有

素数的平方根之和。

例如,在主函数中从键盘给n输入100后,输出为:sum=148.874270。

注意:要求n的值大于2但不大于100。部分源程序在文件PROGl.C

中。

请勿改动主函数main和其他函数中的任何内容,仅在函数fun的花括

号中填入你编写的若干语句。

26. 请编写一个函数fun,它的功能是:找出一维整型数组元素中最大的

值和它所在的下标,最大的值和它所在的下标通过形参传回。数组元素

中的值已在主函数中赋予。

主函数中x是数组名,n是x中的数据个数,max存放最大值,index存

放最大值所在元素的下标。

注意:部分源程序存在文件PROGl.C文件中。

请勿改动主函数main和其他函数中的任何内容,仅在函数fun的花括

号中填入你编写的若干语句。

27. 下列程序定义了N×N的二维数组,并在主函数中自动赋值。请编写

函数fun(int a[][N],int n),该函数的功能是:使数字右上半三角元素中的

值乘以m。

例如,若m的值为2,a数组中的值为

a=1 9

2 7

则返回主程序后a数组的值应为

2 18

2 14

注意:部分源程序给出如下.

请勿改动主函数main和其他函数中的任何内容,仅在函数

号中填入所编写的若干语句。

试题程序:

#include<conio.h>

#include<stdio.h>

#include<stdlib.h>

#define N 5

int fun(int a[] [N], int m)

{

}

main()

{

int a[N] [N],m, i, j;

clrscr ();

printf {"*****The array*****n");

for (i=O; i<N; i++)

/*输出一个随机的5×5矩阵*/

{ for(j=0; j<N; j++)

{a[i] [j]=rand()%20;

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

}

printf ("n");

}

fun的花括

do

m=rand () %10;

while (m>=3); /*产生一个上于3的随机数*/

printf ("m=%4dn", m);

fun (a,m);

printf ("THE RESULTn");

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

{for(j=0;j<N;j++)

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

printf ("n");

}

}

28. 编写函数fun,函数的功能是求出小于或等于lim的所有素数并放在

aa数组中,函数返回所求出的素数的个数。

注意:部分源程序在文件PROGl.C中。

请勿改动主函数main和其他函数中的任何内容,仅在函数fun的花括

号中填入你编写的若干语句。

29. 函数fun的功能是:将a、b中的两个两位正整数合并形成一个新的

整数放在c中。合并的方式是:将a中的十位和个位数依次放在变量c

的十位和千位上,b中的十位和个位数依次放在变量c的个位和百位上。

例如,当a=45,b=12。调用该函数后,c=5241。

注意:部分源程序存在文件.PROGl.C中。数据文件IN.DAT中的数

据不得修改。

请勿改动主函数main和其他函数中的任何内容,仅在函数fun的花括

号中填入你编写的若干语句。

30. 编写程序,实现矩阵(3行3列)的转置(即行列互换)

例如,输入下面的矩阵:

100 200 300

400 500 600

700 800 900

程序输出:

100 400 700

200 500 800

300 600 900

注意:部分源程序在文件PROGl.C中。

请勿改动主函数main和其他函数中的任何内容,仅在函数

号中填入你编写的若干语句。

fun的花括

31. 请编写函数fun,函数的功能是:移动字符串中的内容,移动的规则

如下:把第1到第m个字符,平移到字符串的最后,把第m+l到最后

的字符移到字符串的前部。

例如,字符串中原有的内容为:ABCDEFGHIJK,m的值为3,则移动

后,字符串中的内容应该是:DEFGHIJKABC。

注意:部分源程序在文件PROGl.C中。请勿改动主函数main和其他

函数中的任何内容,,仅在函数fun的花括号中填入你编写的若干语句。

本文标签: 函数结构内容功能程序