




已阅读5页,还剩3页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
2010大学C语言程序设计试题及答案一、单选题(每小题2分,共20分)(1) 变量的指针,其含义是指该变量的 。 A) 值 B) 地址 C) 名 D) 一个标志(2)若有说明int (*p)3;则以下 是正确的叙述。A) p是一个指针数组 B) p是一个指针,它只能指向一个包含3个int类型元素的数组C) p是一个指针,它可以指向一个一维数组中的任一元素D) (*p)3与*p3等价(3)以下 是对共用体类型数据的正确描述。A) 一旦定义了一个共用体变量后,即可引用该变量或该变量中的任何成员。B) 一个共用体变量中可以同时存放其所有成员C) 一个共用体变量中不能同时存放其所有成员D) 共用体类型数据可以出现在结构体类型定义中,但结构体类型数据不能出现在共用体类型定义中。(4)若有语句int array34;以下对下标为i和j的数组元素的引用不正确的是 。A) arrayij B) *(*(array+i)+j) C) *(arrayi+j) D) *(array+i*4+j)(5)一般情况下, 文件占用存储空间较多。A)二进制文件 B)文本文件 C)随机文件 D)顺序文件(6)以下引用非法的是 。 struct student int num; int age;stu1,*p; p=&stu1; A) stu1.age B) student.age C) p-age D) (*p).age(7)指针变量一定不能进行的运算是 。A)+ B)- C)= D)/(8)以下关于main()函数的说法,正确的是 。A) main()必须是程序的第一行 B)main()可以有参数C) 一个程序可以有多个main() D)main()可以被用户自定义的函数调用(9)关于下面的函数,正确的说法是 。void Swap(int *p1, int *p2) int *p; *p = *p1; *p1 = *p2; *p2 = *p;A) 交换*p1和*p2的值 B) 正确,但无法改变*p1和*p2的值C) 交换*p1和*p2的地址 D) 编译时可能出现警告错误(10)若对文件的操作未到文件尾时,feof(fp)函数的返回值是 。A)EOF B)1 C)0 D)不定的非零值二、读程序,写结果。(每小题6分,共18分)(1)输入20和30,写出其输出结果。#includevoid input(int *p,int *q);void add(int *p,int *q);void process(int *p,int *q,void (*fun)(int *,int *); main()int a,b;process(&a,&b,input);process(&a,&b,add);void input(int *p,int *q)printf(Input:);scanf(%d%d,p,q);void add(int *p,int *q)printf(Output:%dn,*p+*q);void process(int *p,int *q,void (*fun)(int *,int *) (*fun)(p,q);(2)#include main()int a34=1,3,5,7,9,11,13,15,17,19,21,23;int *p;for(p=a0;pa0+12;p+)if(p-a0)%4=0)printf(n);printf(%4d,+(*p);(3)#include struct student int num; char name20; char sex; int age; ; struct student stu3=10101,Mike,M,18, 10102,Jim,M,19, 10103,Ann,F,20; main() struct student *p,t; t=stu0; stu0=stu2; stu2=t; for (p=stu;pnum, p-name, p-sex, p-age); 三、程序填空题(每空3分,共18分)(1) 下面程序在数组中同时查找最大元素和最小元素的下标,分别存放在main()函数的max和min中。#include void find(int *a,int n,int *max,int *min);main()int max,min,a=8,3,7,1,4,6,9,5;find( );printf(max=%d,min=%dn,max,min);void find(int *a,int n,int *max,int *min)int i;*max=0;*min=0;for(i=0;ia*max) ;if(aia*min) ;(2) 下面程序用变量count统计文件中字符的个数。#include #include main()FILE *fp;char ch;long count=0;if(fp=fopen(letter.dat, )=NULL)printf(cannot open this filen); exit(0);while( )!=EOF) ;printf(count=%ldn,count);fclose(fp);四、编写程序。(共44分)(1) 已知三个字符串,分别是“C Language”、“Final Exam”和你名字的拼音,请按由大到小的顺序输出。要求将字符串的排序写成函数。(12分)(2)用结构体方法编程实现输入十个学生的姓名、性别、成绩,求平均成绩,把低于平均成绩的男生的姓名与分数输出。 (12分)(3)从键盘输入一行字符,输入后把它存储到一磁盘文件test.txt中。再从该文件中读出这些数据,将其中的小写字母转换成大写字母后在屏幕上输出。(10分)(4)建立一个链表,每个结点包括:编号、姓名、电话、Email。输入一个电话,如果链表中的结点所包含的电话等于此电话,则将此结点删除。(10分)C语言程序设计试题答案一、单选题(每小题2分,共20分)ABCDB BDBDC二、读程序,写结果。(每小题6分,共18分)(1) Output:50(2) 2 4 6 810 12 14 1618 20 22 24(3) 10103 Ann F 2010102 Jim M 1910101 Mike M 18三、程序填空题(每空3分,共18分)(1) a,8,&max,&min *max=i *min=i(2)rch=fgetc(fp)count+四、编写程序。(共44分)(1) #include#includevoid sort(char *name ,int n);main()char *name=C Language,Final Exam,考生姓名;int i,n=3;sort(name,n);for(i=0;i3;i+)printf(%sn,namei);void sort(char *name ,int n)char *temp; int i,j,k; for(i=0;in-1;i+)k=i;for(j=i+1;jn;j+)if(strcmp(namek,namej)0) k=j;if(k!=i)temp=namei; namei=namek; namek=temp; (2) #include #include #define N 10struct student char name10;char sex2;float score;main( ) struct student sN;int i;float sum,ave;for(i=0;iN;i+) printf(姓名:);gets();printf(性别:);gets(si.sex);printf(分数:);scanf(%f,&si.score);getchar();sum=0;for(i=0;iN;i+)sum=sum+si.score;ave=sum/N;for(i=0;iN;i+)if(si.scoreave)&(strcmp(si.sex,男)=0)printf(n%s:%f,,si.score); (3) #include#include#define N 100main()FILE *fp;char ch,*p,sN;gets(s);if(fp=fopen(test.txt,w)=NULL) printf(cannot open outfilen); exit(0); p=s;while(*p!=0) fputc(*p+,fp); fclose(fp); printf(n); if(fp=fopen(test.txt,r)=NULL) printf(cannot open outfilen); exit(0); while(ch=fgetc(fp)!=EOF) if(ch=a&ch=z)ch-=32;putchar(ch); printf(n); fclose(fp);(4)#include #include #include struct person *creat();struct person *del(struct person *head,char *telephone);void print(struct person *head); #define LEN sizeof(struct person)struct personint no;char name20;char tel15; char email30; struct person *next;int n; main()struct person *head;char telephone15;printf(intput records:n) ;head=creat();print(head);printf (nintput the deleted telephone number:n);gets(telephone);head=del(head,telephone);print(head);struct person *creat()struct person *head; struct person *p1,*p2; n=0;p1=p2=(struct person*) malloc(LEN);scanf(%d,&p1-no);getchar();gets(p1-name);gets(p1-tel);gets(p1-email);head=NULL;while(p1-no!=0)n=n+1; if(n=1)head=p1; else p2-next=p1;p2=p1; p1=(struct person*)malloc(LEN);scanf(%d,&p1-no);getchar();gets(p1-name);gets(p1-tel);gets(p1-email); p2-next=NULL; return(head);struct person *del(struct person *head,char *telephone)struct person *p1,*p2;if (head=NULL)printf(nlist null!n);goto end;p1=head;while(strcmp(p1-tel,telephone) & p1-next!=NULL)p2=p1;p1=p1-next;if(strcmp(p1-tel,telephone)=0)if(p1=head) head=p1-next;else p2-next=p1-next;printf(delete:%sn,telephon
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 名校校长年度工作计划及自我评估
- 110kV变电站主设备安装方案
- 员工绩效考核指标设计与激励机制
- 2024年小学二年级语文期末复习计划及教案
- 公司组织结构优化管理方案
- 物流仓储管理岗位职责及岗位说明书
- 电商平台售后服务流程优化建议书
- 小学英语五年级单词默写练习册
- 食品公司用工劳动合同5篇
- 城市轨道交通运营管理及乘客服务规范
- 第13课《警惕可怕的狂犬病》 课件
- 仪表施工全过程的管理
- 如何预防与处理跑步中的常见损伤
- MSOP(测量标准作业规范)测量SOP
- 001 220kV升压站事故油池施工方案
- 智慧停车场运营管理项目风险评估报告
- 九年义务教育全日制小学数学教学大纲(试用)
- 出资比例的协议合同
- GB/T 10345-2022白酒分析方法
- GB/T 19418-2003钢的弧焊接头缺陷质量分级指南
- 四川省参保单位职工社会保险费欠费补缴申报表
评论
0/150
提交评论