2021年吉林省松原市全国计算机等级考试C语言程序设计真题(含答案)_第1页
2021年吉林省松原市全国计算机等级考试C语言程序设计真题(含答案)_第2页
2021年吉林省松原市全国计算机等级考试C语言程序设计真题(含答案)_第3页
2021年吉林省松原市全国计算机等级考试C语言程序设计真题(含答案)_第4页
2021年吉林省松原市全国计算机等级考试C语言程序设计真题(含答案)_第5页
已阅读5页,还剩38页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

2021年吉林省松原市全国计算机等级考试

C语言程序设计真题(含答案)

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

一、2.填空题(10题)

1.下列程序的运行结果是_____O

#definePOWER(x)((x)*(x))

main()

{inti=l;

printf("%d,%d",POWER(i++),i);

)

2.测试的目的是暴露错误,评价程序的可靠性;而的目的是发现

错误的位置并改正错误。

3.以下程序运行后的输出结果是【】。

main()

{intx=15;

while(x>10&&x<50)

{x++;

if(x/3){x++;break;}

elsecontinue;

printfC%d\n",x);

4.十进制数53转换为十六进制数为【】。

5.如果输入T、2、3;4,则以下程序的运行结果为【】。

#include<stdio.h>

main()

{charc;

inti,k;

k=0;

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

{while(l)

{c=getchar();

if(c>='0'&&c<='9')break;

)

k=k*10+c-O;

)

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

}

6.数据库的设计通常可以分为4个步骤:需求分析、概念设计、【】和

物理设计。

7.mystrlen函数的功能是计算str所指字符串的长度,并作为函数值返

回。请填空。

intmystrlen(char*str)

{inti;

for(i=0;[]!='\0';i++);

return([]);

)

8.软件开发环境是全面支持软件开发全过程的【】集合。

9.下面程序的功能是用来统计文件中字符个数。请填空。

#include"stdio.h"

main()

{longcount=OL;

FILE*fp=[]("text.dat","r");

if(fp==O)

{printf("Openerror\n");

exit(O);

)

while([])

{

fgetc(fp);

count++;

)

fclise(fp);

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

)

10.已知字母A的ASCII码为65。以下程序运行后的输出结果是

main()

{chara,b;

a='A'+'5'-'3';b=a+'6'-'2';

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

二、单选题(10题)

11.

(11)对于个正府运行的C程序,卜列叙述中正确的是().

A)程序的执行总是从main函数开始,在main函数结束

B)程序的执行总是从程序的第一个函数开始,在main函数结束

C)程序的执行总是从main函数开始,在程序的最后一个函数中结束

D)程序的执行总是从程序中的第•个函数开始,在程序的最后一个函数中结束

12.在结构化方法中,软件功能分解属于下列软件开发中的阶段是

A.详细设计B.需求分析C.总体设计D.编程调试

13.设有下列二叉树:

对此二叉树先序遍历的结果是

A.ABCDEFB.DBEAFCC.ABDECFD.DEBFCA

14.有以下程序(strcat函数用于连接两个字符串):

#include<stdio.h>

#include<string.h>

main()

(

chara[20]="ABCD\0EFG\0",b[]="UK”;

strcat(a,b);

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

)

程序的运行结果是()o

A.UKB.ABCDE\OFG\OUKC.ABCDUKD.EFGUK

15.以下合法的字符型常量是

A.'\x13'

B'\081'

C.'65'

D.S

16.

(34)对下述程序的判断中,正确的是().

#include<stdio.h>

voidmain()

{char*p,s[256];

P=s;

while(strcmp(s,Mtheend"))

{printfl^Inputthestring:");

gcts(s);

while(*p)

puichar(*pH);}}

A)此程序循环接收字符串并输出,直到接收到字符串“theend”为止

B)此程序循环接收字符串,接收到字符串“theend”则输出,否则程序终止

C)此程序循环接收字符串并输出,内到接收字符串“theend”为止,但亩为代码有

借误,程序不能正常工作一

D)此程序循环接收字符串并将其连接在一起,直到接收字符串“theend”为止,输

出连接在•起的字符串

17.sizeof(float)是()。

A.一个双精度型表达式B.一个整型表达式C一种函数调用D.一个不

合法的表达式

(15)下列关于函数的叙述中正确的是()。

A)每个函数都可以被其他函数调用(包括main函数)

B)每个函数都可以被单独编译

C)每个函数都可以单独运行

18.D)在一个函数内部可以定义另一个函数

19.如有inta=ll;则表达式(a/1)的值是()。

A.OB.3C.4D.11

20.有如下定义#defineD2intx=5;floaty=3.83;charC-D';则下面

选项中错误的是

A.x++;B.y++C.c++D.D++;

三、程序设计题(10题)

21.使用VC++2010打开考生文件夹下progl中的解决方案。此解决方

案的项目中包含一个源程序文件prog1.c。在此程序中,编写函数fun(),

其功能是将ss所指字符串中所有下标为奇数的字母转换为大写(若该

位置上不是字母,则不转换)。

例如,若输入“abc4EFg",则应输出“aBc4EFg”。

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

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

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

试题程序:

#include<conio.h>

#include<stdio.h>

#include<string.h>

voidfun(char*ss)

(

)

voidmain(void)

{

chartt[51];

printf("\nPleaseenterancharacterstringwithin50characters:\n^^);

gets(tt);

printf(€t\n\nAfterchanging,thestring\n%s,,,tt);

fun(tt);

printf("\nbecomes\n%s”,tt);

22.编写函数proc(),它的功能是求m以内(不包括m)同时能被5与11

整除的所有自然数之和的平方根s,并作为函数值返回。

例如,m为100时,函数值应为s=7.416198c

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

请勿改动main。函数和其他函数中的任何内容,仅在函数proc()的花括

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

试题程序:

includeVwtdlib.h>

Sinclude<conio.h>

*includeVmaih.h>

#include<stdio.h>

doubleproc(intn)

)

voidmain<>

(

system(*C1-S")i

printf(%f\n*.proc(100))।

)

23.请编写一个函数,用来删除字符串中的所有空格。例如,输入

abcdefgh,则输出为abcdefgh。注意:部分源程序给出如下。请勿改

动main()函数和其他函数中的任何内容,仅在函数proc()的花括号

中填入所编写的若干语句。试题程序:

s3*IC!U3CV+idio.h>

3includeVctype.b>

&mriuti*Vccmickh

#rorludrV>tdlib.h>

midproc<Hmr•Mr)

voidnuiifi<)

char»trf8lji

•y»tefn<)i

pruitK*Inputarings")>

<•«(»tr)i

put"Mr》i

proc<^tr)i

pnntfC*•••Mr।•str)i

24.请编写函数proc,该函数的功能是:将M行N列的二维数组中的

数据,按行的顺序依次放到一维数组中,一维数组中数据的个数存放

在形参n所指的存储单元中。

例如,若二维数组中的数据为

13233343

14243444

15253545

则一维数组中的内容应该是132333431424344415253545。

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

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

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

试题程序:

#include<stdio.h>

voidproc(int(*s)f103,int*b,int*n,intrain,intnn)

(

)

voidmain

(

intarr[10][10]={{33,33,33,33),{44,44,44,44},

{55,55,55,55}),i,j;

inta[100]={o),n=o;

printf("Thematrix:\n");

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

(

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

print"'%3d",arr[i][j]):

printf("\n");

)

proc(arr,a,&n,3,4):

printf("TheAarray:\n");

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

printf("%3d",a[i]):

printf("\n\n");

)

25.有N个学生,每个学生的信息包括学号、性别、姓名、四门课的成

绩,从键盘上输入N个学生的信息,要求输出总平均成绩最高的学生信

息,包括学号、性别、姓名和平均成绩。

26.

假定输入的字符串中只包含字母和*号。请编写函数proc(),它的功能

是:将字符串中的前导*号全部删除,中间和后面的*号不删除。例如,

若字符串中的内容为****a*bc*de理g****,删除后,字符串中的内容则

应当是a*bc*de/g****。注意:部分源程序给出如下。请勿改动main

()函数和其他函数中的任何内容,仅在函数proc()的花括号中填入

所编写的若干语句。试题程序:

FvfitluArVadicuJ

Sinclude<como.h>

roidproc<char•»tr)

midRMiiiiC)

rtur

prtfid(BEnter■wiring

g«»<»ir>i

pror<Mf>i

prwiR"Theftcnnfidlerddnrdt\n>)i

Blf)1I

27.请编写函数proc(),该函数的功能是:实现B=A+A1即把矩阵A

加上A的转置,存放在矩阵B中。计算结果在main()函数中输出。

1I1

144

777

KU置能阵为.

141

147

14T

238

58II

R111A

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

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

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

试题程序:

dmcludeVconio.

9mcludkValdlibu

voidproc<IIMinib(3j£3]>

21d)

O][3]a

tnii»ji

system()।

proc<arr»t)i

for(i*0>+)

,or《j・OijV3"++)

pnntf(*S7d*.tfilGJH

pnmf<

28.

编写函数proc,它的功能是:计算和输出下列级数的和。S=1/(12)

+1/(23)+...+1/(n(n+1))例如,当n=20时,函数值为0.952381。

注意:部分源程序给出如下。请勿改动main()函数和其他函数中的

任何内容,仅在函数proc()的花括号中填入所编写的若干语句。试

题程序:

sinetudeVh>

Utndude<conidh>

,indud*b>

doubleproc<min>

VOtdBTVItflC>

■ee<"CLS*)I

prtni«*Sf\n*»proc(IO>)^

29.使用VC++2010打开考生文件夹下progl中的解决方案。此解决方案

的项目中包含一个源程序文件progLc。在此程序中,学生的记录由学号

和成绩组成,N名学生的记录已放入主函数的结构体数组s中。请编写

函数fun(),其功能是把指定分数范围内的学生记录存放在b所指的数

组中,分数范围内的学生人数由函数值返回。

如输入的分数是60、69,则应当把分数在60〜69的学生记录输出,包

含60分和69分的学生记录。主函数中把60放在low中,把69放在

high中o

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

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

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

试题程序:

#include<stdio.h>

#defineN16

typedefstruct

{

charnumflO];

ints;

JSTREC;

intfun(STREC*a,STREC*b,int1,inth)

voidmain()

(

STRECs[N]={{"GA005”,85},{“GA003”,76},

{“GA002”,69},{“GA004”,

85},{“GAOO1”,96},{“GA007”,72},{“GA008”,64},{“GA006”,87},{“GAO1

5”,85},{“GA013”,

94},{“GAO12”,64},{“GAO14”,91},{“GAO11”,90},{“GAO17”,64},{“GAO

18”,64},{“GAO16”,72}};

STRECh[N];

inti,n,low,high,t;

printf("Enter2integernumberlow&high:^^);

scanf("%d%d”,&low,&high);

if(high<low)

{t=high;high=low;low=t;}

n=fun(s,h,low,high);

printf("Thestudent'sdatabetween%d—%d:\n”,low,high);

for(i=0;i<=""p="">

u,,

printf(%s%4d\n)h[i].num,h[i].s);

printfC\n,,);

)

30.使用VC++2010打开考生文件夹下progl中的解决方案。此解决方

案的项目中包含一个源程序文件progl.c。在此程序中,请编写函数

fun(),该函数的功能是统计各年龄段的人数。N个年龄通过调用随机

函数获得,并放入主函数的age数组中。要求函数把。〜9岁的人数存

放在d[0]中,把10〜19岁的人数存放在仇1]中,把20〜29岁的人数存

放在d[2]中,依此类推,把100岁(含100岁)以上年龄的人数都存放在

d[10]中。结果在主函数中输出。

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

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

试题程序:

c

o

.

h

i

n

l

u

d

e

<

s

t

d

i

>

2

0

f

e

5

d

e

i

n

N

3

1

t

d

e

f

i

n

e

M

1

4

d

n

a

)

v

o

i

f

u

(

i

n

t

i

n

t

b

r

5

6

7

8

r

d

(

d

o

u

b

l

e

n

)

9

(

t

a

7

«

0

4

;

s

t

i

c

t

2

9

,

c

-

2

1

m

1

2

,

r

«

0

1

0

/

1

1

;

%

m

r

=

(

r

*

t

+

c

)

1

2

n

(

b

;

r

e

t

u

r

(

d

o

u

l

e

)

r

/

m

)

1

3

1

4

)

1

5

v

a

n

)

o

i

d

m

i

(

6

1

1

7

(

1

8

F

I

L

E

w

f

;

1

9

2

0

a

N

i

d

[

j

;

i

n

t

g

e

]

,

M

(

r

2

1

b

,

5

6

i

n

t

[

N

]

{

3

2

,

4

5

,

1

,

1

2

,

8

,

4

9

,

2

2

2

3

9

5

;

9

7

,

3

,

4

4

,

5

2

,

1

7

,

,

6

3

1

2

4

f

o

i

0

;

r

(

-

i

<

N

;

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论