2024年4月29日发(作者:)
2022-2023学年陕西省铜川市全国计算机等
级考试C语言程序设计测试卷(含答案)
学校:________ 班级:________ 姓名:________ 考号:________
一、单选题(12题)
1. 有以下程序: #include <stdio.h>point ( char * p) { p + = 3; }main( )
char b[4] = {'a','b','c','d'} , *p=b; point(p); printf( "% c n" , * p);
A.a B.b C.c D.d
2.下面不属于需求分析阶段任务的是( )。
A.确定软件系统的功能需求 B.确定软件系统的性能需求 C.制定软件
集成测试计划 D.需求规格说明书评审
3.有以下程序:
#include <stdio.h>
#define S(x) x * x/x
main()
{int k=6, j=3;
printf(“%d,%dn”, S(k+j+2), S(j+k+2);
}
程序运行后的输出结果是()。
A.11,11 B.29,29 C.26,29 D.121,121
4.二维数组A的元素都是6个字符组成的串,行下标i的范围从0到8,
列下标j的范圈从1到10,则存放A至少需要()个字节。
A.90 B.180 C.240 D.270
5.
有以下程序
执行程序时,给变量X输入l0,程序的输出结果是( )。
A.55 B.54 C.65 D.45
6.若有语句“typedef struct S { int g; char h; } T;”,则下列叙述中正确的是
()。
A.可用S定义结构体变量 B.可用T定义结构体变量 C.S是struct类型
的变量 D.T是struct S类型的变量
7.若某表最常用的操作是在最后一个结点之后插入一个结点或删除最后
一个结点,则采用()存储方式最节省运算时间。
A.单链表 B.给出表头指针的单循环链表 C.双链表 D.带头结点的双循
环链表
8.对包含N个元素散列表进行查找,平均查找长度()。
A.为O B.为O(N) C.不直接依赖N D.上述三者都不是
9. 若已定义: int a[]={0,1,2,3,4,5,6,7,8,9},*p=a,i; 其中0≤i≤9,
则对a数组元素不正确的引用是______。
A.a[p-a] B.*(&a[i]) C.p[i] D.a[10]
10.有以下程序:
#include <stdio.h>
#define PT 3.5 ;
#define S(x) PT*x*x ;
main()
{int a=1, b=2;
printf(“%4.1fn”, S(a+b));
}
程序的运行结果是()。
A.7.5 B.31.5 C.程序有错,无输出结果 D.14.0
11. 若要说明一个类型名STP,使得定义语句STP s;等价于Char*s;,
以下选项中正确的是( )。
f Char*s;
f Char*STP;
f STP*Char;
f*Char STP;
12. 已知函数的调用形式为fread(buf,size,count,fp),参数buf的含
义是
A.一个整型变量,代表要读入的数据项总数
B.一个文件指针,指向要读的文件
C.一个指针;指向要读入数据的存放地址
D.一个存储区,存放要读的数据项
二、2.填空题(12题)
13. 结构化分析方法是面向______进行分析的方法。
14. 数据管理技术发展过程经过人工管理、文件系统和数据库系统三个
阶段,其中数据独立性最高的阶段是______。
15. 有以下定义和语句,则sizeof(a)的值是 【 】 ,而sizeof()的
值是 【 】 。
struct date
{ int day;
int mouth;
int year;
union {int share1;
float share2;
}share;
}a;
16. 下面的程序实现的是从指针p所指向的地址的n个数中,找出最大的
和最小的数据,请填空。
fun(int *p,int n)
{ int *q;
int max,min;
max=min=*p;
for(q=p;【 】;q++)
if(*q>max)max=*q;
else if( *q
17. 定义int a=5,b;,则执行表达式b=++a*--a之后,变量b的值为【 】。
18. 函数fun的功能是计算xn。
double fun(double x,int n)
{ int i;double y=1;
for(i=1;i<=n;i++) y=y*x;
return y;
}
主函数中已正确定义m、a、b变量并赋值,并调用fun函数计算:m=a4+b4-
(a+b)3。实现这一计算的函数调用语句为【 】。
19. 若x、y和z均是int型变量,则执行下面表达式后的x值为【 】。
x=(y=4)+(z=3)
20. 以下程序运行后的输出结果是______。
main()
{int a=1,b=2,c=3;
if(c=A) printf("%dn",C) ;
else printf("%dn",B) ;
}
21. x、y、x均为int型变量,描述“x、y和z中至少有两个为正数”的表
达式是______。
22. 在对文件进行操作的过程中,若要使文件位置的指针回到文件的开
头,应使用的函数是【 】。
23. 软件生命周期可分为多个阶段,一般分为定义阶段、开发阶段和维
护阶段。编码和测试属于【 】阶段。
24. 下列程序段中循环体的执行次数是______。
a=15;
b=0;
do{b+=2;a-=2+b;}while(a>=0);
三、3.程序设计题(10题)
25. 请编写函数fun,函数的功能是求出二维数组周边元素之和,作为函
数值返回。二维数组中的值在主函数中赋予。
例如:二维数组中的值为:
1 3 5 7 9
2 9 9 9 4
6 9 9 9 8
1 3 5 7 0
则函数值为61。
注意:部分源程序存在文件PROGl.C文件中。
请勿改动主函数main和其他函数中的任何内容,仅在函数fun的花括
号中填入你编写的若干语句。
26. 某学生的记录由学号、8门课成绩和平均分组成,学号和 8门课的
成绩已在主函数中给出。请编写fun()函数,它的功能是:求出该学生的
平均分放在记录的ave成员中。请自己定义正确的形参。
例如,若学生的成绩是85.5,76,69.5,85,91,72,64.5, 87.5,则
他的平均分应当是78.875。
注意:部分源程序给出如下。
请勿改动主函数main和其他函数中的任何内容,仅在函数fun的花括
号中填入所编写的若干语句。
试题程序:
#include<stdio.h>
#define N 8
typedef struct
{ char num [10];
double s[N];
double ave;
} STREC;
void fun()
{
}
main()
{
STREC s={"GA005",85.5,76,69.5,85,91, 72,64.5,87.5);
int i;
fun (&s);
printf("The %s' s student data:n",)/ /*输出学号*/
for(i=0;i<N; i++)
printf("%4.1fn", s.s[i]);
/*输出各科成绩*/
printf("nave=%7.3fn",);
/*输出平均分*/
}
27. 请编写函数fun(),其功能是:将s所指字符串中除了下标为奇数、
同时ASCII值为偶数的字符外,其余的全部删除,串中剩余字符所形成
的一个新串放在t所指的数组中。
例如,若s所指字符串中的内容为edB2A4Dsdg,其中字符A的ASCII
码值为奇数,因此应当删除;其中字符B的ASCII码值为偶数,但在数
组中的下标为偶数,因此也应当删除:而字符2的ASCII码值为偶数,
所在数组中的下标为奇数,因此不应当删除,其他依此类推。最后t所
指的数组中的内容应是d24。
注意:部分源程序给出如下。
请勿改动主函数main和其他函数中的任何内容,仅在函数fun的花括
号中填入所编写的若干语句。
试题程序:
#include <conio.h>
#include <stdio.h>
#include<string, h>
void fun(char*s, char t[])
{
}
main()
{
char s[100] ,t[100];
clrscr();
printf("nPlease enter string S: ");
scanf("%s",s);
fun(s,t);
printf("nThe result is: %sn",t);
}
28. 请编写函数fun(),其功能是:将所有大于1小于整数m的非素数
存入xx所指数组中,非素数的个数通过k传回。
例如,输入17,则应输出4 6 8 9 10 12 14 15 16。
注意:部分源程序给出如下。
请勿改动主函数main和其他函数中的任何内容,仅在函数fun的花括
号中填入所编写的若干语句。
试题程序:
#include<conio.h>
#include<stdio.h>
void fun(int m, int *k, int xx[])
{
}
main ( )
{
int m, n, zz[100];
clrscr();
printf("nPlease enter an integer number
between 10 and 100: ");
scanf("%d",&n);
fun(n,&m, zz);
printf("nnThere are %d non-prime
numbers less than %d: ",m,n);
for(n-0;n<m;n++)
printf("n %4d",zz[n]);
}
29. 请编写一个函数,函数的功能是删除字符串中的所有空格。
例如,主函数中输入“asd af aa z67”,则输出为“asdafaaz67”。
注意:部分源程序在文件PROGl.C中。
请勿改动主函数main和其他函数中的任何内容,仅在函数
号中填入你编写的若干语句。
fun的花括
30. 请编写函数fun,其功能是:计算并输出给定10个数的方差:
例如,给定的10个数为95.0、89.0、76.0、65.0、88.0、72.0、
85.0、81.0、90.0、56.0,输出为s=11.730729。
注意:部分源程序在文件PROGl.C中。
请勿改动主函数main和其他函数中的任何内容,仅在函数fun的花括
号中填入你编写的若干语句。
31. 请编写函数fun,其功能是:计算并输出给定数组(长度为9)中每相
邻两个元素之平均值的平方根之和。
例如,给定数组中的9个元素依次为12.0、34.0、4.0、23.0、34.0、
45.0、18.0、3.0、11.0,输出应为:s=35.951014。
注意:部分源程序在文件PROGl.C中。
请勿改动主函数main和其他函数中的任何内容,仅在函数fun的花括
号中填入你编写的若干语句。
32. 编写程序,实现矩阵(3行3列)的转置(即行列互换)
例如,输入下面的矩阵:
100 200 300
400 500 600
700 800 900
程序输出:
发布者:admin,转转请注明出处:http://www.yc00.com/news/1714394193a2438344.html
评论列表(0条)