下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、c语言部分一、选择题(每小题2分,共10分)(下在各小题,分别有一个或多个正确答案,请将所有正确答案的编号,填写在该小题题干后的括号内。错选或漏选均不得分)。1、若定义:inta230,2,4,6,8,10;以下描述正确的有(A,C,D,E)A、*(a+1)为元素6的地址这里a+1=a1的地址;*(a+1)的值是6,故A正确。B、*(a1+1)的值为2为8,故B不正确C、*(a+1)+2的值为8这里a+1是一个指针,指向的是a1.|*(a+1)为a1,a1指向的是a10.*(a+1)为6,加2得8,故C正确;D、a0与a相同因二者都是指针,指针的地址都是指向数组中的第一个元素的地址,故D正确。
2、E、a12的值为10它是指第二行的第三个元素,为10,正确2、对函数的正确使用方法描述(A,C,D)oA、用数组做函数参数时,必须在主调函数和被调函数中分别定义数组B、实参数组元素和形参数组元素类型可以不一致C、形参数组长度可以不指定D、形参数组长度可以大丁实参数组长度E、数组名做参数届丁值传递3、对静态变量的正确描述(A,B,D,E)IA、静态局部变量在静态存储区内分配单元()B、静态外部变量可以赋初值,也可以不赋初值C、静态外部变量的作用与外部变量相同D、静态局部变量在函数调用结束时,仍保存其值,不会随着消失。E、静态局部变量只赋一次初值4、下列描述正确的是(A,C)。A、由main函数及
3、其参数argc和*argv可以实现命令行方式B、使用fclose关闭文件时,先释放文件指针,再写缓冲区数据到文件中先写缓冲区数据到文件中,再释放文件指针C、字符数组并不要求它的最后一个字符是0'是的,以字符指针指向的字符申才要求,因为只有这样,才能知道字符申的长度,而在字符数组中,不用0,一样可以知道到哪里是字符数组的结尾。D、A'和“A”都是字符申常量E、若char*S="ta017bc”;则指针变量S指向的字符申所占的字节数是75、在缓冲文件系统中用丁读写的函数有(A,B,D)A、putchar()B、fread()C、rewind()D、purw()E、fsee
4、k()二、程序阅读,并给出运行结果(共10分,每题5分)。(1)main()unsigneda,b,x-IntnJa=0x763输出结果:n=6;b=avv(12-n);x=(a>>n-2)Ab;/+,-,的优先级比<<,>>高。printf(“nx=%X',b,x);在用2个字节表示整数的系统中结果为d8c0d8b6在用4个字节表示整数的系统中结果为1d8c01d8b6故以上两种结果都正确。(2)#includestdin.hstructmintx;int*y;*p;inta4=12,33,-40,100;structmb4=10,&a2,
5、9,&a3,8,&a0,7,&a1main()p=b;输出结果:printf("dn”,+p->x);/->的优先级高丁+,因此等丁是+(p->x),为11printf("dn”,(+p)->x);/p后移一个元素,其x值为9;printf("dn”,+(*p->y);/->的优先级高丁*,此时p已指向b1,故*(p->y)为a3为100.自加后为101;故输出结果为:119101三、程序设计(共10分)设在文件a.txt和文件b.txt中分别存有两个字符申,设计一个程序将这两个字符申按依序交义的方
6、式合并为一个字符申(例如“aaaa吕与“bbb”的合并结果为“abababaa,而“bbb”与“aaaa§的合作结果为“bababaa,)并将结果存入文件a.txt中。写程序时,可以分别读取a.txt文件和b.txt文件,注意(1),无论a文件先读完还是b文件先读完,程序都能作出适应性的判断。注意(2)把a和b合并的结果,写到一个临时文件c中,最后把c的文件覆盖到a文件中,达到题意的要求。#include<stdio.h>main()FILE*fp,*fq,*fr;charch;if(fp=fopen("a.txt","r+")=N
7、ULL)printf("cannotopenfilea.txt");网址:if(fq=fopen("b.txt","r")=NULL)printf("cannotopenfileb.txt");exit(0);fr=fopen("c.txt”,"w+");while(!feof(fp)-ch=fgetc(fp);fputc(ch,fr);if(!feof(fq)ch=fgetc(fq);fputc(ch,fr);while(!feof(fq)ch=fgetc(fq);fputc(ch,
8、fr);rewind(fp);rewind(fr);while(!feof(fr)ch=fgetc(fr);fputc(ch,fp);fclose(fp);fclose(fq);fclose(fr);=1.2四川大学2001年攻读硕士学位研究生入学考试试题及答案1.2.1第2001年C语言程序设计题目一、单项选择题(在每小题的四个备选答案中,选出一个正确的答案,并将其号码写在答题纸上。请注意注明题号。每小题1分,共计6分)1、t'表示什么? 字符申常数标识符变量字符常量答案:2、对宏定义不正确的描述是哪一个?-在进行宏定义时,可以引用已经定义的宏名,可以层层置换可以引用已经定义了的宏名
9、,可以层层置换宏名的有效范围包括本文件的任何位置宏名的有效范围定义命令之后到本源文件结束,可以用#define终止宏定义的作用域宠定义不是语句,不必在行末加分号是预处理定义语句对程序中双引号括起来的字符申,即使与宏名相同,也不进行置换3、若定义staticchars20=”computer”;则执行语句x=strlen(s);之后,x的值为多少?209819/strlen函数计算char*型字符申的长度的时候,并不包含末尾的0;4、以下哪一个表达式取值是正确的?6>5结果为6I6&&5结果为76|5结果为7J6<5结果为05、如定义enumweekdayone,tw
10、o,thr,fou,fiv;enumweekdayworking;以下哪个是不正确的枚举变量的使用?working=thr;working=2;working=(enumweekday)2;working=(enumweekday)(5-3);不能对其赋值6、下列说法中正确的是哪一个?sizeof(char)是结果为整型的表达式sizeof(char)是一个不合法的表示形式sizeof(char)是一种函数调用sizeof(char)是结果为实型的表达式二、阅读程序,并回答问题(共12分)1、下列程序的输出是什么?(3分)#include<stdio.h>voidmain()cha
11、r*aplha6="ABC”,“DEF”,“GHI”,“JKL”,“MNO”,“PQR”;char*p;inti;p=aplha;for(i=0;i<4;i+)printf(n”,输出结果ABCDEFGHIJKL刚好是字符申数组里面的前四个元素的内容连接起来2、下列程序为什么无法将用户输入的三个整数按从小到大排序输出?应该如何修改?(6分)#include<stdio.h>voidswap(intx,inty)intt=x;x=y;y=t;voidmain()inta,b,c;printf(“%d,%d,%d”,a,b,c);scanf(“d,%d,%d”,&
12、;a,&b,&c);if(a>b)swap(a,b);if(a>c)swap(a,c);if(b>c)swap(b,c);if(b>c)swap(&b,&c);3、假设系统为基本整型量分配2个字节,为字符型量分配1个字节。下歹0程序完成的功能是什么?(3分)#include<stdio.h>unionintn;charch2;u;voidmain()intm;scanf(“d”,&m);u.n=m;printf("n%u,%u”,u.ch0,u.ch1);该程序的功能,取用户输入的整数值的高字节和低字节,并按
13、照任意整数的低字节和高字节分别输出。三、程序设计题(12分)假设一个文本文件中保存着100个整数,请将这100个整数按从小到大的顺序写到另一个文本文件中去,并且在新文件中每10个整数占一行。源文件名和目标文件名通过命令行参数获取。分数分配:变量定义2分命令行参数处理1分文件打开1分文件读2分排序3分文件写|2分文件关闭1分#include<stdio.h>voidmain(intargc,char*argv)FILE*fin,*fout;Inta100,i,j,t;if(argc!=3)fin=fopen(argv1,“r");fout=fopen(argv2,W);fo
14、r(i=0;i<100;i+)fscanf(fin,“d”,&ai);for(i=0;i<99;i+)for(i=0;i<99i;i+)if(aj>aj+1)Jt=aj;aj=aj+1;aj+1=t;for(i=0;i<100;i+)fprintf(fout,“r%S);,“fprintf(fout,“d,ai);fclose(fin);fclose(fout);1.3四川大学2002年攻读硕士学位研究生入学考试试题及答案1.3.1第2002年C语言题目C语言程序设计(共30分)Gc1='b',c2='b'D、c1='
15、;a',c2='b'Gc1='b',c2='b'D、c1='a',c2='b'一、单项选择题(在每小题的四个备选答案中,选出一个正确答案。每小题1前加加,先加1后使用值,后加加是先使用其值在加加,所以c加加后的值赋予cl,cl得值b,c2先使用值,再加加,c2得值b5、以下c语句执行后,inti,s=0;for(i=0;i<10;i+)s+=i;printfR%dn',i);输出的内容为。A、0B、9C、10D、11/i值在循环外定义,所以其值循环结束仍有意义,得值106、以下c语句执行后,c
16、hars1100=IlikeC1anguage,s2100;strcpy(s2,s1);strcat(s1,s2);puts(s2);输出的内容为。A、IB、IlikeClanguageCIlikeClanguageIlikeClanguageD、IlikeClanguageIlikeClanguageIlikeClanguage连接后的申存在s1里,对s2没有影响二、阅读程序,写出该程序的执行结果。(4分)#includestdio.hvoidmain()chara310="Beijing"Shanghai","Chengdu"charp1,
17、(*p2)10;Jp1=a0;p2=a;printf("%cn”,*(a1+1);/a1代表是第一行字符申Shanghaii加1后得值第一个字符h的地址,*取出其地址里的值hprintf("%cn",*(*(a+1)+2);/*(a+i)=ai代表是第一行字符申Shanghai加2后得值第2个字符a的地址,*取出其地址里的值printf("%cn",*(p1+1);/p1是一字符指针,加一指向第零行第1个字符e的位置,*取出其地址里的值printf("%cn",*(*(p2+1)+2);/p2为一指向数组的指针,p2是与数组
18、名等价的指针,它指向2维数组的首行,p2+1指针指向了第一行字申Shanghai加2后得值第2个字符a的地址,*取出其地址里的值在一程序中定义了如下结构类型用丁处理单向链表:structlinkageintvalue;structlinkage*pNext;;现已经编写出按节点的成员a值从小到大建立初始链表的函数create()如下所示:structlinkage*create(void)structlinkage*pHead;inta4=2,1,3,5;pHead=NULL;for(i=0;i<4;i+)pHead=addItem(pHead,ai);returnpHead;在该函数的
19、for循环前,pHead为NULL;在执行整个for循环后,创建的链表如下所示:即在被调函数addItem()中,需要动态分配内存,生成新节点,将传入的第二参数的值赋给该节点的成员value:并通过第一个参数链表首节点确定适当位置放置该新节点。请完成函数:structlinkage*addItem(structlinkage*pHead,intvalue);返回值指向单向链表头节点。你可能用到下面的动态内存分配函数。void*malloc(unsignedintsize);其作用是在内存的动态存储区中分配一个长度为size的连续空间。返回值为指向分配域起始地址的指针。1、在空链表中加第一个节点
20、2分;2、加到当前链表头节点前2分;3、加到当前链表头节之后适当位置,可分为两步。2分;4、其它部分2分,包括整体结构,变量定义,返回值。structlinkage*addItem(structlinkgae*pHead,intvalue)structlinkage*p,*q,*r,*s;p=pHead;r->a=value;IIr->pNext=p;pHead=r;elseq=p>pNext;while(q)if(value<=q->a)break;elsep=q;q=p->pNext;r=(structlinkage*)malloc(sizeof(str
21、uctlinkage);r->a=value;r->pNext=q;p->pNext=r;|returnpHead;文档可自行编辑修改内容,文档可自行编辑修改内容,文档可自行编辑修改内容,(此文档部分内容来源丁网络,如有侵权请告知删除,供参考,感谢您的支持)函数swap采用值传递,虽然将形参x和y交换了,但是并不影响到实参。将值传递改成指针传递就可以了。C函数参数采用值传递方式,虽然swap函数将形式参数x和y的值进行了调换但是影响不到相应的实在参数。所以在主函数中,通过调用sawp函数调换a;b(或a或c,或b和c)的值是根本达不到目的的。修改:(2分)voidswap(int*x,int*y)intt=*x;*x=*y;*y=t;(2分)主函数if(a>b)swap(&a,&b);if(a>c)swap(&a,&c);printf(“Youforgottoenterafilename;return;分,共6分)1、如果I为整型变量,f为float型变量,c表达式'a'+I*f的类型为。A、字符型B、整型C、单精度型D、双精度型即使是两个float型的数据相加,都化成d
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 中国人民大学《信息管理专业研究方法论与创新教育》2023-2024学年第一学期期末试卷
- 郑州软件职业技术学院《体育产品概论》2023-2024学年第一学期期末试卷
- 小学2024年体育自评结果
- 浙江电力职业技术学院《生产运作实验》2023-2024学年第一学期期末试卷
- 长安大学兴华学院《瑜伽基础》2023-2024学年第一学期期末试卷
- 餐饮文化与创新模板
- 双十一医保新品发布
- 专业基础-房地产经纪人《专业基础》模拟试卷5
- 三年级学习导向模板
- 气候变迁与寒露模板
- DB1303T382-2024 创伤性休克患者护理指南
- 2024-2025学年华东师大新版八年级上册数学期末复习试卷(含详解)
- 《道路车辆 48V供电电压的电气及电子部件 电性能要求和试验方法》文本以及编制说明
- 十八项医疗核心制度考试题与答案
- 2024年鄂尔多斯市国资产投资控股集团限公司招聘管理单位遴选500模拟题附带答案详解
- 船形乌头提取工艺优化
- 财务总监个人述职报告
- 居家养老护理人员培训方案
- 江苏省无锡市2024年中考语文试卷【附答案】
- 管理者的九大财务思维
- 四年级上册数学应用题练习100题附答案
评论
0/150
提交评论