C语言考试题及答案
更新时间:2023-10-25 12:57:01 阅读量: 综合文库 文档下载
一、单项选择题:(10分,每题2分)
1.char *p[10];该语句声明了一个: c 。 A) 指向含有10个元素的一维字符型数组的指针变量p B) 指向长度不超过10的字符串的指针变量p
C) 有10个元素的指针数组p,每个元素可以指向一个字符串 D) 有10个元素的指针数组p,每个元素存放一个字符串
2.若int x;且有下面的程序片断,则输出结果为: D 。
for (x=3; x<6; x++) {
printf((x%2) ? \}
A) ##3 B) **3 C) **3 D) ##3**4
**4 ##4 ##4**5 ##5 ##5 **5
3.在while(!x)语句中的!x与下面条件表达式等价的是: D 。
A) x!=0 B) x==1 C) x!=1 D) x==0 4.已知
struct point { int x; int y; };
struct rect { struct point pt1; struct point pt2; };
struct rect rt;
struct rect *rp = &rt;
则下面哪一种引用是不正确的__D______。 A) rt.pt1.x B) (*rp).pt1.x C) rp->pt1.x D) rt->pt1.x
5.若二维数组a有m行n列,则下面能够正确引用元素a[i][j]的为: C 。
A) *(a+j*n+i) B) *(a+i*n+j) C) *(*(a+i)+j) D) *(*a+i)+j CDDDC
二、分析程序并写出运行结果。(25分,每题5分)
1.
#include
第 1 页 共 10 页
for (n=1; n<=12; n++) { printf(\ } }
运行结果是:
January February March April May June July August September October November December
2.
#include
void YH(int a[][ARR_SIZE], int n);
void PrintYH(int a[][ARR_SIZE], int n);
main() { int a[ARR_SIZE][ARR_SIZE];
YH(a, ARR_SIZE-1); PrintYH(a, ARR_SIZE-1); }
void YH(int a[][ARR_SIZE], int n) { int i, j; for (i=1; i<=n; i++) { for (j=1; j<=i; j++) { if (j==1 || i==j) { a[i][j] = 1; } else {
a[i][j] = a[i-1][j-1] + a[i-1][j]; } } } }
第 2 页 共 10 页
void PrintYH(int a[][ARR_SIZE], int n) { int i , j ;
for (i=1; i<=n; i++) { for (j=1; j<=i; j++) { printf(\ }
printf(\ } }
运行结果是: 1
1 1
1 2 1
1 3 3 1
1 4 6 4 1
1 5 10 10 5 1 3.
#include
程序运行时输入:1 -2 3 -4 5↙ 运行结果是:
n = 1
Please enter n: Please enter n:n = 3 Please enter n: Please enter n:n = 5 Program is over!
4.
#include
main() { int i; for (i = 0; i < 2; i++) { Func(i); } }
void Func(int n)
第 3 页 共 10 页
{ static int t = 1; printf(\}
运行结果是: t=1 t=2 5.
#include
main() { int i; for (i=3; i<5; i++) { printf(\ } printf(\}
int Func(int i) { static int k = 10; for (; i>0; i--) { k++; } return (k); }
运行结果是: 13 17
三、阅读并完成程序,在标有下划线的空白处填入适当的表达式或语句,使程序完整并符合题目要求。(20分,每空2分)
1. 下面程序用于读入10个字符串,然后找出最大的字符串并打印。
#include
#include
第 4 页 共 10 页
} printf(\}
2. 下面这个程序用于交换两个数组的对应元素的值。
#include
void Swap(int *x, int *y);
void Exchange(int a[], int b[], int n); void InputArray(int a[],int n); void PrintArray(int a[],int n);
main() { int a[ARRAY_SIZE], b[ARRAY_SIZE], n; printf(\ scanf(\ printf(\ InputArray(a, n); printf(\ InputArray(b, n); Exchange(a,b,n); printf(\ printf(\ PrintArray(a, n); printf(\ PrintArray(b, n); }
void Swap(int *x, int *y) { int temp; temp=*x ; *x=*y ; *y=temp ; }
void Exchange(int a[], int b[], int n) { int i; for (i = 0; i < n; i++) { Swap( &a[i],&b[i] ); } }
void InputArray(int a[], int n) { int i; for (i = 0; i < n; i++) { scanf(\
第 5 页 共 10 页
} }
void PrintArray(int a[], int n) { int i; for (i = 0;i < n;i++) { printf(\ } printf(\}
3. 从键盘任意输入一个年号,判断它是否是闰年。若是闰年,输出\,否则输出\。已知符合下列条件之一者是闰年:
能被4整除,但不能被100整除。 能被400整除。
#include
flag = 1; } else { flag = 0; } if ( flag ) {
printf(\ } else { printf(\ } }
四、在下面给出的4个程序中,共有15处错误(包括语法错误和逻辑错误),请找出其中的错误,并改正之。(在错误的代码下边画一根横线,把正确的代码写在旁边;漏掉的代码正确插入合适的位置。30分,每找对1个错误,加1分,每修改正确1个错误,再加1分。)
1.编程计算矩阵相乘之积。
#include
#define ROW 2 #define COL 3
// void MultiplyMatrix(int a[ROW][COL],int b[COL][ROW], int c[ROW][ROW]) ;
第 6 页 共 10 页
main() { int a[ROW][COL], b[COL][ROW], c[ROW][ROW], i, j;
printf(\ for (i=0; i MultiplyMatrix(a, b, c); printf(\ for (i=0; i void MultiplyMatrix(int a[ROW][COL],int b[COL][ROW], c[ROW][ROW]) { int i, j, k; for (i=0; i 2.编程输入10个数,找出其中的最大值及其所在的数组下标位置。 #include int FindMax(int num[], int n, int *pMaxPos); main() { 第 7 页 共 10 页 int int num[10], maxValue, maxPos, minValue, minPos, i printf(\ for (i=0; i<10; i++) { scanf(\//& num[i] } maxValue = FindMax(num, 10, *maxPos); // &maxPos printf(\} int FindMax(int num[], int n, int *pMaxPos) { int i, max; max = num[0]; for (i = 1, i < n, i++)// i = 1; i < n; { if (num[i] > max) { max = num[i]; *pMaxPos = i; } } return max; } //; 3.韩信点兵。韩信有一队兵,他想知道有多少人,便让士兵排队报数:按从1至5报数,最末一个士兵报的数为1;按从1至6报数,最末一个士兵报的数为5;按从1至7报数,最末一个士兵报的数为4;最后再按从1至11报数,最末一个士兵报的数为10。你知道韩信至少有多少兵吗? #include 4.下面函数Squeez()的功能是删除字符串s中所出现的与变量c相同的字符。 void Squeeze(char s[], char c);// void Squeeze(char s[], char c) { int i,j; //j=0; for (i=0; s[i]!='\\0'; i++) { if (s[i] != 'c') //c { 第 8 页 共 10 页 s[j] = s[i]; j++; } s[i]='\\0'; // s[j]='\\0'; } 或// s[j]='\\0'; } 五、编程(15分) 从键盘任意输入某班10个学生的成绩,调用save函数把数据存入到以你的学号命名的磁盘文件中,然后打开该文件读出数据,对成绩进行由高到低的排序,并打印成绩不及格的学生人数。最后再次调用save函数把数据存入到原磁盘文件中。要求按照如下给出的函数原型进行编程: void save(float score[],int n); void Sort(float score[],int n); int Fail(float score[],int n); 要求用一维数组做函数参数编程实现成绩排序和统计成绩不及格的学生人数,然后在主函数中打印这些结果,不能使用全局变量编程。 参考程序如下: void load(float score[],int n) //3分 {FILE *fp; int i; if((fp=fopen(02406101\ {printf(\ return;} for(i=0;i if(fread(&score[i],sizeof(float),1,fp)!=1) {if(feof(fp)) {fclose(fp); return;} printf(\ } fclose (fp); } void save(float score[],int n) //3分 {FILE *fp; int i; if((fp=fopen(\ {printf(\ return; } for(i=0;i if(fwrite(&score[i],sizeof(float),1,fp)!=1) printf(\fclose(fp); } void sort(float score[],int n) //3分 第 9 页 共 10 页 {int i,j,k; float t; for(i=0;i for(j=i+1;j t= score[k]; score[k]= score[i]; score[i]=t;} } int Fail(float score[],int n) //3分 {int i,k=0; for(i=0;i if(score[i]<60) k++; return k; } void main() //3分 { int i; float score[10]; for(i=0;i<10;i++) scanf(\score[i]); save(score,10); load(score,10); sort(score,10); printf(\ save(score,10); } 第 10 页 共 10 页
正在阅读:
C语言考试题及答案10-25
浅谈对天药物化学的认识05-26
我的宠物狗作文600字06-26
英国岩土勘察原文及中文译本04-18
观察中医分阶段治疗慢性胃炎幽门螺杆菌阳性患者的临床疗效11-19
公司员工活动策划方案07-28
欢乐水世界作文600字06-29
直角尺建标技术报告09-13
电力企业的企业文化创新思路03-07
国际经济学期末考试卷及答案03-12
- 多层物业服务方案
- (审判实务)习惯法与少数民族地区民间纠纷解决问题(孙 潋)
- 人教版新课标六年级下册语文全册教案
- 词语打卡
- photoshop实习报告
- 钢结构设计原理综合测试2
- 2014年期末练习题
- 高中数学中的逆向思维解题方法探讨
- 名师原创 全国通用2014-2015学年高二寒假作业 政治(一)Word版
- 北航《建筑结构检测鉴定与加固》在线作业三
- XX县卫生监督所工程建设项目可行性研究报告
- 小学四年级观察作文经典评语
- 浅谈110KV变电站电气一次设计-程泉焱(1)
- 安全员考试题库
- 国家电网公司变电运维管理规定(试行)
- 义务教育课程标准稿征求意见提纲
- 教学秘书面试技巧
- 钢结构工程施工组织设计
- 水利工程概论论文
- 09届九年级数学第四次模拟试卷
- 考试题
- 答案
- 语言
- 浅谈如何上好一堂初中数学复习课
- 广东工业大学学术期刊认定办法(初稿)
- 铁路车站岗位职责
- 华师在线科学教育作业答案
- 健康评估复习题及答案
- 2015届湖北省第一次八校联考理科数学试题及答案
- 教育学习文章新目标初一下册英语总复习资料
- 东师《大学英语(二)》高起本 15春在线作业2满分答案
- 数电实验报告1.3—四位减法器
- 描写杜鹃花的句子
- 安徽省萧县中学2018-2019学年上学期高三期中数学模拟题
- 高三英语教案高三英语语法复习之《句子成分+常用句式》教案
- 《中小学教师职业道德规范》解读与践行策略 薛中国
- 本科模拟考试2
- 施工升降机使用安全管理
- 哈尔滨工业英才学院导师制导师选择指南 - 图文
- 奇门遁甲判断方法
- 选官制度材料
- 在Windows Server 2008 英文版64位服务器上安装金蝶K3 V10.4数据库层方案
- 股票技术分析小结 - 图文