您好,欢迎来到微智科技网。
搜索
您的当前位置:首页C语言程序设计A课程考核说明(定稿)

C语言程序设计A课程考核说明(定稿)

来源:微智科技网
第三部分 模拟考核试题及解答

一、选择题

1. 由C语言源程序文件编译而成的目标文件的缺省扩展名为( )。 A。 cpp B. exe C。 obj D. C 2。 C语言程序的基本模块为( )。

A。 表达式 B. 标识符 C。 语句 D。 函数 3。 x〉0 || y==5的相反表达式为( ).

A. x〈=0 || y!=5 B. x〈=0 && y!=5 C. x〉0 || y!=5 D。 x〉0 && y==5

4. 枚举类型中的每个枚举常量的值都是一个( )。 A。 整数 B. 浮点数

C。 字符 D。 逻辑值

5. 循环语句“for(int i=0; i〈n; i++) S;\"中循环体S被执行的次数为( )。 A. 1 B。 n-1 C. n D。 n+1

6。 在下面的while循环语句中,其循环体被执行的次数为( ). int i=0,s=0; while(s〈20) {i++; s+=i;} A。 4 B. 5 C。 6 D。 7 7. 若定义了函数 double *function(), 则返回值类型为( ). A. 实数型 B。 实数指针型 C. 函数指针型 D。 数组型 8. 若用数组名作为函数调用的实参,传递给形参的是( ). A. 数组的首地址 B。 数组中第一个元素的值 C。 数组中全部元素的值 D。 数组元素的个数

9. 假定a为一个整型数组名,则元素a[4]的地址比该数组的首地址大( )个字节。 A. 4 B. 8 C。 16 D. 32 10. 下列给字符数组赋初值时,正确的是( )。

A。 char s1[]=\"abcdef”; B。 char s2[4]=\"abcd\"; C. char s3[2][3]={\"abc”,”xyz\"}; D. char s4[4][]={’a','x’,’s',’t’}; A。 char *p=s; B。 char *p=&s; C。 char *p;p=*s; D. char *p; p=&s; 11. 要使p指向二维整型数组a[10][20],p应定义为( ). A。 int *p=a; B。 int **p=a; C。 int *p[20]=a; D. int(*p)[20]=a;

12. 标准输入设备的文件流标识符是( )。

A. stdin B。 stdout C。 stderr D。 stdio

13. 若要以读/写操作方式打开一个二进制文件,当文件不存在时返回打开失败信息,则选用的打开方式字符串为( )。

A。 \"r+\" B。 \"ab+\" C. \"rb+\" D. \"wb+\"

二、填空题

1。 单行或多行注释的开始标记符为__________.

2. 使用#include命令可以包含一个头文件,也可以包含一个______文件。

3. 执行“printf(”%s%s%d”,\"wei\”rong\);”语句后得到的输出结果为________。 4.执行“printf(\"%c”,'A’+2);”语句后得到的输出结果为________.

1

5.short类型的大小为________个字节。 6. 十进制数3.26f的类型为________。

7. 假定y=10,则表达式++y*3的值为________. 8. 关系表达式(x==0)的等价表达式为________。 9.若x=5,y=10,则x!=y的逻辑值为________.

10. 在if语句中,每个else关键字与它前面同层次并且最接近的________关键字相配套。 11。 当在程序中执行到________语句时,将结束所在循环语句中循环体的一次执行. 12. 假定二维数组的定义为“char a[M][N];\",则该数组所占存储空间的字节数为________。 13. 存储字符串\"a\"需要占用存储器的________个字节空间。 14. strlen函数用于计算一个字符串的________.

15.函数中的形参变量的初值由调用该函数时对应的________值决定。 16。 程序的编译是以__________为单位进行的.

17。 假定a是一个一维数组,则a[i]的指针访问方式为________。 18。 执行int *p=malloc(sizeof(int))操作得到的一个动态分配的整型对象为________。 19。 假定要动态分配一个类型为struct Worker的具有n个元素的数组,并由r指向这个动态数组,则使用的语句表达式为 ________________=malloc(n*sizeof(struct Worker))。

20。 与结构成员访问表达式p-〉name等价的表达式是____________。

三、写出下列每个程序运行后的输出结果 1. #include〈stdio.h〉 void main() { int i, s=0;

for(i=1;;i++) { if(s〉50) break; if(i%2==0) s+=i; }

printf(\"i,s=%d, %d\\n”,i,s); }

2. #include〈stdio.h〉 void main() { char ch=’*’; int i, n=5; while(1) {

for(i=0;i〈n;i++) printf(\"%c\; printf(”\\n\");

if(——n==0) break; } }

3。 #include void main() {

2

int x=24,y=88; int i=2,p=1; do {

while(x%i==0 && y%i==0) { p*=i; x/=i; y/=i; } i++;

}while(x>=i && y〉=i); printf(”%d\\n\*x*y); }

4。 #includeint a[9]={36,25,48,24,55,40,18,66,20}; int i, b1, b2;

a[0]<=a[1]? (b1=a[0], b2=a[1]):(b1=a[1],b2=a[0]); for(i=2; i<9; i++) if(a[i]〈b1) {b2=b1; b1=a[i];} else if(a[i]5. #include〈stdio.h〉 void main() { int a=10, b=20;

printf(\"%d %d\\n\,b); { int b=a+25; a*=4;

printf(”%d %d\\n”,a,b); }

printf(\"%d %d\\n”,a,b); }

6。 #include〈stdio。h〉

void SelectSort(int a[], int n) {

int i,j,k,x;

for(i=1;ifor(j=i;j〈n;j++)

if(a[j]3

void main() {

int i;

int a[6]={20,15,32,47,36,28}; SelectSort(a,6);

for(i=0; i〈6; i++) printf(\"%d \",a[i]); printf(\"\\n\"); }

7。 #include

void LE(int* a, int* b) { int x=*a; *a=*b; *b=x; }

void main() {

int x=15, y=26;

printf(”%d %d\\n”,x,y); LE(&x,&y);

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

8。 #include

#includechar name[15]; //姓名 int age; //年龄 float pay; //工资 };

int Equal(struct Worker* r1, struct Worker* r2) {

if(strcmp(r1->name, r2—>name)==0) return 1; else return 0; }

void main() {

struct Worker a[4]={{”abc”,25,420},{\"defa\",58,638}, {\"ghin”,49,560},{\"jklt\,375}}; struct Worker x={\"defa\"}; int i;

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

if(Equal(a+i,&x)) break;

if(i〉=4) printf(”没有查找所需要的记录!\\n”); else printf(”%s %d %6.2f\\n\].name,a[i]。age,a[i]。pay); }

4

四、写出下列每个函数的功能

1. int SE(int n) { //n为大于等于1的整数 int x,s=0;

printf(\"输入%d个整数: ”,n); scanf(”%d\); if(n==1) return x; s=x;

while(--n) {scanf(”%d”,&x); s+=x;} return s; }

2。#include〈stdio。h〉

void WA(int a[], int n) { int i,k,j,x; for(i=0;i〈n-1;i++) { k=i;

for(j=i+1;ja[k]) k=j; x=a[i]; a[i]=a[k]; a[k]=x; } }

3. #include〈stdio.h〉 int* LJ(int a[], int n) { int i,k=0;

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

if(a[i]>a[k]) k=i; return &a[k]; }

4。 int Output(struct IntNode *f) {

int sum=0;

if(!f) return -9999; //用返回特定值-9999表示空表 while(f) { sum+=f—>data;

f=f-〉next; } return sum; }

假定struct IntNode的类型定义为: struct IntNode {

int data; //结点值域

struct IntNode* next; //结点指针域

5

};

5. int wr4(FILE* fptr) {

char ch; int c=0;

fseek(fptr,0,SEEK_SET); while(1) { ch=fgetc(fptr); if(ch!=EOF) c++; else break; } return c; }

五、根据下列每个题目要求编写程序 1。 编写一个函数fun(),首先从键盘上输入一个4行4列的一个实数矩阵到一个二维数组a[4][4]中,接着求出主对角线上元素之和,最后返回求和结果.

210

2。 编写一个主函数,计算1+3+3+。。。+3的值并输出,假定分别用i,p,s作为循环变量、累乘变量和累加变量的标识符。

3. 编写一个主函数,已知6≤a≤40,15≤b≤30,求出满足不定方程2a+5b=120的全部整数组解.如(13,20)就是其中的一组解。

参考解答: 一、选择题

1。 C 2. D3。 B4. A5. C

6. C7。 B8。 A9. C 10。 A 11. D12. A 13。 C

二、填空题

1。 /*2。 程序 3. weirong184. C 5。 26. float 7。 338. (!x) 9。 110。 if

11。 continue12。 M*N 13。 214。 长度

15。 实参16。 程序文件 17. *(a+i)18。 *p

19。 struct Worker* r20。(*p)。name

三、写出下列每个程序运行后的输出结果 1.

i,s=15, 56

6

2。 ***** **** *** ** * 3. 2 4.

18 20 5. 10 20 40 35 40 20 6.

15 20 28 32 36 47 7.

15 26 26 15 8。

defa 58 638.00

四、写出下列每个函数的功能

1。 求出从键盘上输入的n个整数之和并返回.

2。 采用选择排序的方法对数组a中的n个整数按照从大到小的次序重新排列。3. 求出数组a中n个元素的最大值元素,返回该元素的地址

4.对于以表头指针为f的链表,求出并返回所有结点中data域的值之和. 5。求出一个以fptr为文件流的所对应文件的长度,即所存字符的个数.

五、根据下列每个题目要求编写程序 1。 double fun() {

double a[4][4]; double s=0; int i,j;

printf(”输入一个4*4的数值矩阵:\\n\"); for(i=0;i<4;i++)

7

for(j=0;j<4;j++) scanf(\"%lf”,&a[i][j]); for(i=0;i〈4;i++) s+=a[i][i]; return s; }

2。#includeint i; //用i作为循环变量 int p=1; //用p作为累乘变量 int s=1; //用s作为累加循环变量

for(i=1;i〈=10;i++) {p*=3; s+=p;} printf(”%d\\n\); }

3.#include〈stdio.h> void main() {

int a,b;

for(a=6;a〈=40; a++) for(b=15;b〈=30;b++)

if(2*a+5*b==120) printf(”(%d, %d)\\n\,b); }

注意:以上只是在题型和内容上提供参考,题量要比试卷多.

8

因篇幅问题不能全部显示,请点此查看更多更全内容

Copyright © 2019- 7swz.com 版权所有 赣ICP备2024042798号-8

违法及侵权请联系:TEL:199 18 7713 E-MAIL:2724546146@qq.com

本站由北京市万商天勤律师事务所王兴未律师提供法律服务