大学C语言期末试卷题型参考答案.doc_第1页
大学C语言期末试卷题型参考答案.doc_第2页
大学C语言期末试卷题型参考答案.doc_第3页
大学C语言期末试卷题型参考答案.doc_第4页
大学C语言期末试卷题型参考答案.doc_第5页
已阅读5页,还剩2页未读 继续免费阅读

下载本文档

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

文档简介

一、选择题(共20分,每小题2分)1. 在C语言类型说明中,int, char, short等类型数据的长度是( D )。A. 固定的B. 由用户自己定义的C. 任意的D. 与机器字的长度有关2. 若已正确说明为int类型,要给abc输入数据,则正确的输入语句是( D )。A. read(a,b,c);B. scanf(“%d%d%d”,a,b,c);C. scanf(“%D%D%D”,&a,&b,&c);D. scanf(“%d%d%d”,&a,&b,&c);3. C语言中对嵌套if语句的规定是:else总是与( D )配对。A. 其之前最近的ifB. 第一个ifC. 缩进位置相同的ifD. 其之前最近且不带else的if4. 以下语句中,( C )是不可能做到提前退出循环语句的。A. gotoB. breakC. continueD. return5. 假设有两个字符数组a、b,则以下正确的输入语句是( B )。A. gets(a, b)B. scanf(“%s %s”,a,b)C. scanf(“%s%s”,D. gets(“a”); gets(“b”)6. 以下正确的描述是( B )。在C语言程序中,A. 函数的定义可以嵌套,但函数的调用不可以嵌套B. 函数的定义不可以嵌套,但函数的调用可以嵌套C. 函数的定义和含糊的调用均可以嵌套7. 在宏定义#define PI 3.1415926中,用宏名PI代替一个( D )。A. 单精度数B. 双精度数C. 常量D. 字符串8. 以下选项中,对指针变量p不正确的操作是( C )。A. int a6, *p; p = &a;B. int a6, *p; p = a;C. int a6; int *p = a = 1000;D. int a6; int *p1, *p2 = a; *p1 = *p2;9. 设有以下说明,已知int类型占2个字节,则下列叙述正确的是( D )。struct st int a; int b2; a;A. 结构体变量名a和结构体成员a同名,不合法B. 程序运行时将为结构体st分配6个字节的内存单元C. 程序运行时不为结构体st分配内存单元D. 程序运行时将为结构体变量a分配6个字节的内存单元10. 当文件顺利关闭时,fclose()的返回值是( C )。A -1B. EOFC. 0D. 1二、填空题(共20分,每小题2分) 1. C程序中定义的一个变量,代表内存中的一个 存储单元 。2. 72在内存中占 一 个字节,”72”在内存中占 二 个字节。3. 结构化程序设计的3种基本结构是 顺序结构 、 选择结构 、 循环结构 。4. 下列for循环执行 4 次。 For (x =0 , y = 0; y != 99 & x 4; x+) ;5. 若有定义 “double x35;”则x数组中行下标的下限为 0 , 列下标的上限为 4 。6. 函数swap(intx, inty)可以完成对x和y值的交换。在运行调用函数中的如下语句后,a0和a1的值分别为 1, 2 ,原因是 参数按值传递,形参值的改变不会影响实参值 。a0 = 1; a1 = 2; swap(a0, a1);7. 设有以下宏定义: #define WIDTH 80 #define LENGTH (WIDTH + 40) 则执行赋值语句”k = LENGTH * 20;” (k为int型变量)后,k的值是 2400 。8. 声明语句” int (*p)( ); ” 的含义是 P是一个指向函数的指针变量,该函数的返回值是整型 。9. typedef long int BIGGY 的作用是定义了一个新的 数据类型标识符 。10. EOF只可用于 文本 文件,用来作为 文件结束 标志。三、阅读程序,并将分析结果写在程序右边空白处(共24分,每小题6分)1. 运行下列程序,如果输入5432,请写出程序运行结果。#include main()int digit, number;scanf(%d, &number);while(number)digit = number % 10;number /= 10;printf(%d, digit);结果为:2345评分标准:若结果正确,6分;若结果部分有误,但有正确分析过程,根据比例适当得分;若结果有误且无分析,得0分2. 运行下列程序,如果输入18 ,请写出程序运行结果(库、头文件省略)。#include int main()int x, y, i, a8, j, u, v;scanf(%d, &x);y = x;i = 0;do u = y / 2;ai = y % 2;i+;y = u; while(y = 1);for(j = i - 1; j = 0; j-)printf(%d, aj);printf(nyes);结果为:(十进制转二进制)10010 Yes评分标准:若结果正确,6分;若结果部分有误,但有正确分析过程,根据比例适当得分;若结果有误且无分析,得0分3. 请写出以下程序的运行结果#include void increment(void);int main()increment();increment();increment();void increment(void)static int x;x += 1;printf(%d, x);结果为: 123评分标准:若结果正确,6分;若结果部分有误,但有正确分析过程,根据比例适当得分;若结果有误且无分析,得0分4. 请写出以下程序的运行结果#include #include int main()char *p1, *p2, str20 = ABC;p1 = abc;p2 = abc;strcpy(str+1, strcat(p1, p2);printf(%sn, str);结果为:Aabcabc评分标准:若结果正确,6分;若结果部分有误,但有正确分析过程,根据比例适当得分;若结果有误且无分析,得0分四、程序填空(共16分,每小题8分)1. 以下程序可计算10名学生1门课成绩的平均分,请根据题意填空。#include float average(float array); int main()float score10, aver;int i;printf(n please input 10 scores:);for(i = 0; i 10; i+)scanf(%f, &scorei);aver = average(score) ;printf(naverage score is %5.2fn, aver);getchar(); getchar();float average(float array10)int i;float aver, sum = array0;for(i=1; i = 9 ; i+)sum += arrayi ;aver = sum / 10;return (aver);评分标准: 每空2分2. 以下程序从键盘输入一行字符作为字符串(遇换行符结束)存放在字符数组中,然后输出,请根据题意填空。#include main()char s80, *p;int i;for(i = 0; i 80; i+)si = getchar();if(si = n )break;si = 0 ;p = s ;while(*p)putchar (*p + );评分标准: 每空2分五、程序设计(共20分,每小题10分)1. a是一个2*4的整型数组,且各元素以通过键盘赋值。函数max_value可求出其中的最大元素值max,并将此值返回主调函数。现有函数调用语句”max = max_value(a);”,请编写max_value函数和main()函数,在main()中调用max_value函数并输出其结果。#include int max_value(int arr4);int main()int i, j, x, a24;printf(please input the array a24:n);for(i = 0; i 2; i+)for(j = 0; j 4; j+)scanf(%d, &aij);x = max_value(a);printf(n%dn, x);int max_value(int arr4)int i, j, m;m = arr00;for(i = 0; i 2; i+)for(j = 0; j m)m = arrij;return m;评分标准:在符合题意的要求上,实现方式任意,其中各部分声明总共2分;Main中, scanf 2分,调用1分,输出1分;max_value中,循环2,比较及返回2分。2. 运用指针编写一个函数,将一个3*3的矩阵转置(即行列互换),并在主调函数中调用实现。矩阵数据要求从键盘读取输入,并要求显示转置前后的矩阵内容。#include main()void move(int *pointer);int a33, *p, i;printf(please input the matrix:n);for(i = 0; i 3; i+)scanf(%d %d %d, &ai0, &ai1, &ai2);fflush(stdin);printf(noriginal matrix is:n);for(i = 0; i 3; i+)printf(%d %d %dn, ai0, ai1, ai2);p = &a00;move(p);printf(nnow, the converted matrix is:n);for(i = 0; i 3; i+)printf(%d %d %dn, ai0, ai1, ai2);void move(int *pointer)int i

温馨提示

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

评论

0/150

提交评论