C语言程序设计A课程复习内容和要求(文本)

更新时间:2023-03-14 19:06:01 阅读量: 教育文库 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

(2011.12.06)C语言程序设计A课程复习内容和要求(文本)

敖开云:徐老师,能不能把上学期本课程的考试题电子稿发给我?我在本期的教学中需要用到它。我的Email:aokaiyun@cqdd.cq.cn谢谢! 徐孝凯:请参考其他帖子!

甘家应:哪儿有往届考试试题呀,谢谢。 徐孝凯:请参考其他帖子!

秦超:咱们学的C语言和C++有什么联系吗?或者有什么不同?

徐孝凯: C++是在C语言的基础上建立起来的,C++内容更丰富,增加了面向对象编程的方法! 秦超:现在C语言用的比较多少的是那种软件?上机运行环境? 徐孝凯:一般采用VC++6.0运行环境!

何振川:各位老师,大家好,我是锦州电大本门课的导学教师张悦,今年新接的课程,请大家多多指点。

徐孝凯:请学习好教材内容并时常上机调试程序! 梅丽丽:c语言原程序

#include #include void main() {

int i,n;

for(n=2;n<=20;n++){

int temp=(int)sqrt(n);//sqrt(n)求出n的平方根并取整 for(i=2;i<=temp;i++) if(n%i==0)break;

if(i>temp)printf(\ }

printf(\

}

输出结果为: 2 3 5 7 11 13 17 19 Press any key to continue

徐孝凯:此程序能够打印出20以内的所有素数。 甘家应:我的计算机基础不好,觉得这门课好难学觉得。 徐孝凯:只要多用时间,认真学习,是能够学会的。 梅丽丽: for语句能够被改写为while语句。 徐孝凯:完全可以!

羊万平:一个变量的地址是由计算机系统控制分配的,用户无法也无须干涉,但变量的地址

可以由取地址运算符得到,可以把它付给同类型的一个指针变量,通过对指针变量的间接访问可以操作所指向的变量。 徐孝凯:对的。

雒逢博:for循环是开界的。它的一般形式为: for(<初始化>; <条件表过式>; <增量>) 语句; 初始化总是一个赋值语句, 它用来给循环控制变量赋初值; 条件表达式是一 个关系表达式, 它决定什么时候退出循环; 增量定义循环控制变量每循环一次后 按什么方式变化。这三个部分之间用\分开。 例如: for(i=1; i<=10; i++) 语句; 上例中先给i赋初值1, 判断i是否小于等于10, 若是则执行语句, 之后值增 加1。再重新判断, 直到条件为假, 即i>10时, 结束循环。 徐孝凯:对的。

夏进飞:求助,第三章,练习四第4题――题目如下:

已知6≤a≤30,15≤b≤36 ,求满足不定方程2a+5b=126的全部整数解。如(13,20)就是一个整数解。 恳请各位同学老师指点错误之处。执行是直接退出。

#include #include void main () {

int i=6,j=15,a,b,c;

while(i>=6&&i<=30) {

while(j>=15&&j<=36){ a=i; c=(126-2*a);

if(c%5==0) {b=(int)(c/5);

printf(\满足不定方程2a+5b=126的解为(%d,%d)\\n\ } j++; } i++; } }

夏进飞:论坛没人帮忙吗?为嘛这个老是出错。纠结 夏进飞:从CSDN拿到答案了#include #include void main () {

int i=6; while(i<=30){

int j=15; while(j<=36){

if(2*i+5*j==126) printf (\不定方程2a+5b=126的整数解(%d,%d)\\n\ j++;} i++;} }

内循环没有控制好变量

夏进飞:从CSDN拿到答案了#include #include void main () {

int i=6; while(i<=30){ int j=15; while(j<=36){

if(2*i+5*j==126) printf (\不定方程2a+5b=126的整数解(%d,%d)\\n\ j++;} i++;} }

内循环没有控制好变量 徐孝凯:回答正确! 往届试卷之一

中央广播电视大学

C语言程序设计A课程试卷(2)

题 号 得 分 一 二 三 四 五 总 分 2010.1.13底考

一、单选题(每小题2分,共20分)

1. 由C语言源程序文件编译而成的目标文件的默认扩展名为( )。 A. cpp B. c C. exe D. obj

2.设x和y均为逻辑值,则x || y为假的条件是x和y( )。 A. 均为真 B. 其中一个为真 C. 均为假 D. 其中一个为假

3. 枚举类型中的每个枚举常量的值都是一个( )。

A. 整数 B. 浮点数 C. 字符 D. 记录

4. 循环语句“for(i=0; i<=n; i++) S;”中循环体S被执行的次数为( )。 A. 1 B. n-1 C. n D. n+1 5. 假定有语句为“int a[4][5]={{1,3,5},{2,8}};”,则a[1][1]的值为( )。 A. 3 B. 5 C. 8 D. 10

6. 在下面的选项中,不能作为函数的返回值类型的是( )。 A. void B. node C. int D. long 7. 假定x的值为5,y的值为6,则表达式x++*--y的值为( )。 A. 25 B. 30 C. 36 D. 42

8. 用calloc函数创建具有10个整型元素的动态存储空间的正确调用是( )。 A. calloc(10,sizeof(char)) B. calloc(10)

C. calloc(10,sizeof(int)) D. calloc(20, sizeof(int)) 9. 假定有语句“int b[10], *pb;”,则不正确的赋值为( )。

A. pb=b B. pb=b[5] C. pb=b+2 D. pb=&b[0]

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

A. stderr B. stdin C. stdout D. stdio 二、填空题(每小题2分,共26分)

1. 在一个C语言程序文件中,若要包含另外一个头文件或程序文件,则应使用的预处理命令为__________。

2. 用于从键盘上为变量输入值的标准输入函数的函数名为________。 3. 假定一个枚举类型的定义为“enum RA{ab,ac,ad,ae};”,则ad的值为________。 4.int类型的长度为________。 5. 执行“int x=45,y=8;printf(\”语句序列后得到的输出结果为________。 6. 把表达式x=x+y转换成复合赋值表达式为__________。

7. 假定x的值为5,则执行“a=(x>=6? 3: 8);”语句后a的值为________。 8. 假定一维字符指针数组的定义为“char* a[5];”,则该数组占用的存储空间的字节数为________。

9. 假定二维数组的定义为“double a[M][N];”,则数组元素的行下标取值范围在_________之间。

10. 空字符串的长度为________。

11. 在所有函数定义之外定义的变量,若没有被初始化则系统隐含对它所赋的初值为________。

12. 若p指向x,则________与x的表示是等价的。

13. 直接访问表达式(*fp).score所对应的间接访问表达式为____________。 三、写出下列每个程序运行后的输出结果(每小题6分,共30分) 1. #include void main() { int i,s=0;

for(i=1;i<6;i++) s+=i*i; printf(“s=%d\\n”,s); }

2. #include #define N 6 void main() {

int i,a[N]={2,5,8,10,15,21}; for(i=0; i

if(a[i]%5==0) printf(\ printf(\

}

3. #include #include void main() { int i;

unsigned int len=0;

char* a[5]={\ for(i=0; i<5; i++)

if(strlen(a[i])>len) len=strlen(a[i]); printf(\ }

4. #include void main() {

int a,b;

for(a=2,b=3; a<15;) { printf(\ a=a+b; b=a+b; } }

5. #include

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

void main() {

int x=15, y=26; LE(&x,&y);

printf(\ }

四、写出下列每个函数的功能(每小题6分,共12分) 1. #include

int SA(int a, int b) { if(a>b) return 1;

else if(a==b) return 0; else return -1; }

函数功能:

2. void Output(struct IntNode *f) //f为单链表的表头指针 {

if(!f) return; while(f) {

printf(\ f=f->next; }

printf(\ }

假定struct IntNode的类型定义为:

struct IntNode {int data; struct IntNode* next;};

函数功能:

五、按题目要求编写函数(每小题6分,共12分) 1. 编写一个函数,函数原型为“int fun4(char* ptr);”,请采用while循环求出由字符指针ptr所指向的字符串中包含的小写英文字母的个数,并把这个值作为函数值返回。

222

2. 编写一个主函数,计算并输出表达式1+2+3+...+10的值。

中央广播电视大学

C语言程序设计A课程试卷答案及评分标准(2)

(供参考)

一、单选题(每小题2分,共20分)

1. D 2. C 3. A 4. D 5. C 6. B 7. A 8. C 9. B 10. B 二、填空题(每小题2分,共26分)

1. #include 2. scanf 3. 2 4. 4 5. 5 6. x+=y 7. 8 8. 20 9. 0~M-1 10. 0 11. 0 12. *p 13. fp->score

三、写出下列每个程序运行后的输出结果(每小题6分,共30分)

评分标准:根据答案正确程度酌情给分。 1. s=55 2. 5 10 15 3. len=7

4. 2 3 5 8 13 21 5. 26 15

四、写出下列每个函数的功能(每小题6分,共12分)

评分标准:根据答案叙述的正确与完善程度酌情给分。

1. 比较两个整数a和b的大小,若a>b则返回1,若a==b则返回0,若a

五、按题目要求编写函数(每小题6分,共12分)

评分标准:根据编写函数的正确与完整程度酌情给分。 1. int fun4(char* ptr) {

int n=0; //1分 while(*ptr) { //2分 if(*ptr>='a' && *ptr<='z') n++; //4分 ptr++; //5分 }

return n; //6分 }

2. #include void main() {

int i, s=0; //1分 for(i=1; i<=10; i++) s+=i*i; //4分 printf(\分 }

注:若s的初值为1,则循环变量i的初值应修改为2。

往届试卷之二

中央广播电视大学2008秋季

C语言程序设计A课程试卷(6)

题 号 得 分 一 二 三 四 五 总 分 2011年7月考 一、单选题(每小题2分,共20分)

1. C语言程序中的基本功能模块为( )。

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

A. x<=0 || y!=5 B. x<=0 && y!=5 C. x>0 || y!=5 D. x>0 && y==5

3. 循环体至少被执行一次的循环语句为( )。

A. for B. while C. do-while D. 任一种循环 4. 假定n的值为5,则表达式n++的值为( )。 A. 6 B. 5 C. 4 D. 7

5. 假定一个二维数组的定义为“int a[3][4]={{3,4},{2,8,6}};”,则元素a[2][0]的值为( )。

A. 0 B. 2 C. 4 D. 6 6. 假定一个函数原型为“char* func(int n)”,则该函数的返回类型为( )。 A. int B. int* C. char D. char*

7. 假定a为一个字符数组名,则元素a[i]的指针访问方式为( )。 A. a+i B. *(a+i) C. &a+i D. *a+i 8. 假定有语句为“int *p=calloc(10+20,sizeof(int));”,则p所指向的动态数组中所包含的元素个数为( )。

A. 10 B. 20 C. 30 D. 40

9.十进制数50表示成符合C语言规定的八进制数为________。 A. 20 B. 32 C. 62 D. 062 10. 若要以读和写两种操作方式打开一个二进制文件,当文件不存在时返回打开失败信息,则选用的打开方式字符串为( )。

A. \ 二、填空题(每小题2分,共26分)

1. 在一个C语言程序文件中,若要包含另外一个头文件或程序文件,则应使用的预处理命令为__________。

2. 用于从键盘上为变量输入值的标准输入函数的函数名为________。 3. 假定一个枚举类型的定义为“enum RA{ab,ac,ad,ae};”,则ac的值为________。 4.double类型的长度为________。 5. 执行“int x=45,y=13;printf(\”语句序列后得到的输出结果为________。 6. 把表达式x=x+y转换成复合赋值表达式为__________。

7. 假定x的值为5,则执行“a=(!x? 10: 20);”语句后a的值为________。 8. 假定一维字符指针数组的定义为“char* a[8];”,则该数组占用的存储空间的字节数为________。

9. 假定二维数组的定义为“double a[M][N];”,则数组元素的行下标取值范围在_________之间。

10. 空字符串的长度为________。

11. 在所有函数定义之外定义的变量,若没有被初始化则系统隐含对它所赋的初值为________。

12. 若p指向x,则________与x的表示是等价的。

13. 直接访问表达式(*fp).score所对应的间接访问表达式为____________。 三、写出下列每个程序运行后的输出结果(每小题6分,共30分) 1. #include void main() { int i,j,k=0;

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

for(j=i; j<5; j++) k++;; printf(\ }

2. #include void main() { int x=20; int i=2; while(i

if(x%i==0) {printf(\ i++; } }

3. #include void main() {

int a[8]={76,63,54,95,40,75,90,66}; int i, s=0;

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

if(a[i]>=70 && a[i]<=90) s+=a[i]; printf(\ }

4. #include

int WF(int x, int y) { x=x+y; y+=x;

return x+y; }

void main() { int x=3, y=8;

printf(\ }

5. #include

int LA(int *a, int n) { int i,s=0;

for(i=0;i

void main() {

int a[5]={1,2,3,4,5}; int b=LA(a,5)+LA(a+2,3); printf(\ }

四、写出下列每个函数的功能(每小题6分,共12分) 1. int WC(int a[], int n, int k) { int i, c=0;

for(i=0;i=k) c++; return c; }

函数功能:

2. void QA(struct Worker a[], int n) {

int i;

for(i=0; i

scanf(\ }

假定结构类型struct Worker 的定义如下:

struct Worker { char name[15]; int age; float pay;};

函数功能:

五、按题目要求编写函数(每小题6分,共12分)

1. 根据函数原型“double Mean(double a[M][N],int m,int n)”,编写函数定义,要求返回二维数组a[m][n]中所有元素的平均值。假定在计算过程中采用变量v存放累加值和最后的平均值。

2. 根据函数原型“int MM(int a[],int m)”,编写函数定义,计算并返回数组a[m]中元素最大值和最小值之差。

中央广播电视大学2008秋季

C语言程序设计A课程试卷答案及评分标准(6)

(供参考)

一、单选题(每小题2分,共20分)

1. D 2. B 3. C 4. B 5. A 6. D 7. B 8. C 9. D 10. C 二、填空题(每小题2分,共26分)

1. #include 2. scanf 3. 1 4. 8 5. 3 6. x+=y 7. 20 8. 32 9. 0~M-1 10. 0 11. 0 12. *p 13. fp->score

三、写出下列每个程序运行后的输出结果(每小题6分,共30分)

评分标准:根据答案正确程度酌情给分。 1. 15 2. 2 5 3. s=241 4. 30 5. b=27

四、写出下列每个函数的功能(每小题6分,共12分)

评分标准:根据答案叙述正确与完整程度酌情给分。

1. 统计并返回一维整型数组a[n]中大于等于k的值的个数。

2. 从键盘上为具有struct Worker类型的数组a[n]输入n个记录。

五、按题目要求编写函数(每小题6分,共12分)

评分标准:根据函数编写的正确与完整程度酌情给分。 1. double Mean(double a[M][N],int m,int n) {

int i,j;

double v=0.0; //1分 for(i=0; i

for(j=0; j

return v; //6分

} //注:函数体的最后两行可以合并为一条返回语句:return v/=m*n 2. int MM(int a[],int m) {

int i,x1,x2;

x1=x2=a[0]; //1分 for(i=1; ix1) x1=a[i]; //3分 if(a[i]

五、按题目要求编写函数(每小题6分,共12分)

评分标准:根据函数编写的正确与完整程度酌情给分。 1. double Mean(double a[M][N],int m,int n) {

int i,j;

double v=0.0; //1分 for(i=0; i

for(j=0; j

return v; //6分

} //注:函数体的最后两行可以合并为一条返回语句:return v/=m*n 2. int MM(int a[],int m) {

int i,x1,x2;

x1=x2=a[0]; //1分 for(i=1; ix1) x1=a[i]; //3分 if(a[i]

本文来源:https://www.bwwdw.com/article/65tx.html

Top