


下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、C语言部分一、选择题(每小题2分,共10分)(下在各小题,分别有一个或多个正确答案,请将所有正确答案的编号,填写在 该小题题干后的括号内。错选或漏选均不得分)。1、 若定义:int a23 0,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相同因二者都是指针,指针的地址都是指向数
2、组中的第一个元素的地址,故D正确。E、a12的值为 10它是指第二行的第三个元素,为10,正确2、对函数的正确使用方法描述(A,C,D L)oA、用数组做函数参数时,必须在主调函数和被调函数中分别定义数组B、实参数组元素和形参数组元素类型可以不一致C、 形参数组长度可以不指定D、形参数组长度可以大于实参数组长度E、数组名做参数属于值传递3、对静态变量的正确描述(A,B,D,E ) IA、静态局部变量在静态存储区内分配单元()B、静态外部变量可以赋初值,也可以不赋初值C、静态外部变量的作用与外部变量相同D、静态局部变量在函数调用结束时,仍保存其值,不会随着消失。E、静态局部变量只赋一次初值4、下
3、列描述正确的是(A,C)oA、由main函数及其参数argc和* argv可以实现命令行方式B、使用fclose关闭文件时,先释放文件指针,再写缓冲区数据到文件中 /先写缓冲区数据到文件中,再释放文件指针C、 字符数组并不要求它的最后一个字符是0'是的,以字符指针指向的字符串才要求,因为只有这样,才能知道字符串的长 度,而在字符数组中,不用0,样可以知道到哪里是字符数组的结尾。D、 A '和“ A”都是字符串常量E、 若char*S= “ta017bc”;则指针变量S指向的字符串所占的字节数是75、在缓冲文件系统中用于读写的函数有(A,B,D )A、putchar () B、f
4、read() C、rewind () D、purw() E、fseek()二、程序阅读,并给出运行结果(共 10分,每题5分)。(1) main() un sig ned a,b,xnt n;a=0x763输出结果:n=6;b=avv (12-n);x=(a>>n-2)Ab; /+,-,的优先级比 <<,>>高。 printf( “nx=%X' ,b,x);在用2个字节表示整数的系统中结果为d8c0d8b6在用4个字节表示整数的系统中结果为1d8c01d8b6故以上两种结果都正确。(2) #includestdin.hstruct m int x;
5、int *y;int a 4= 12, 33, -40, 100;struct m b 4= 10,&a2,9,&a3,8,&a0,7,&a1 'mai n()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;故
6、输出结果为:_119101三、程序设计(共10分)设在文件a.txt和文件b.txt中分别存有两个字符串,设计一个程序将这两个字符 串按依序交叉的方式合并为一个字符串(例如“aaaaa与“ bbb”的合并结果为“ abababaa,而“ bbb”与“ aaaaa的合作结果为“ bababaa ,)并将结果存 入文件a.txt中。【答案】写程序时,可以分别读取a.txt文件和b.txt文件,注意(1),无论a文件先读完 还是b文件先读完,程序都能作出适应性的判断。注意(2)把a和b合并的结 果,写到一个临时文件c中,最后把c的文件覆盖到a文件中,达到题意的要求。#i nclude<stdi
7、o.h>mai n()_ File *fp,*fq,*fr;char ch;if(fp=fope n( "a.txt","叶")=NULL) prin tf("ca nnot ope n file a.txt");exit(0);网址: n/doc/26/9315.htmlif(fq=fope n("b.txt","广)=NULL) prin tf("ca nnot ope n file b.txt");exit(0);:fr=fope n( "c.txt",
8、"w+");while(!feof(fp: I)ch=fgetc(fp) Tfputc(ch,fr);if(!feof(fq)ch=fgetc(fq); fputc(ch,fr);JUlwhile(!feof(fq: ch=fgetc(fq) fputc(ch,fr);I )1Jrew in d(fp); rewi nd(fr);while(!feof(fr)ch=fgetc(fr);fputc(ch,fp);fclose(fp); fclose(fq); fclose(fr); 1.2四川大学2001年攻读硕士学位研究生入学考试试题及答案第2001年 C语言程序设计 题目
9、一、单项选择题(在每小题的四个备选答案中,选出一个正确的答案,并将其号码写在答题纸上。请注意注明题号。每小题 1分,共计6分)1、 t'表示什么? 字符串常数 标识符 变量 字符常量答案:2、对宏定义不正确的描述是哪一个? 在进行宏定义时,可以引用已经定义的宏名,可以层层置换 可以引用已经定义了的宏名,可以层层置换 宏名的有效范围包括本文件的任何位置/宏名的有效范围定义命令之后到本源文件结束,可以用#defi ne终止宏定义的作用域 宠定义不是语句,不必在行末加分号/是预处理定义语句 对程序中双引号括起来的字符串,即使与宏名相同,也不进行置换3、若定义 static char s20=
10、” computer”;则执行语句 x = strle n( s);之后,x 的值为多少?209 819/strlen函数计算char*型字符串的长度的时候,并不包含末尾的0;4、以下哪一个表达式取值是正确的?6>5结果为6 I6&& 5结果为76|5结果为7 J6<5结果为05、如定义enum weekday one, two, thr, fou, fiv;enum weekday work ing;以下哪个是不正确的枚举变量的使用? worki ng = thr; worki ng =2; worki ng = (enum weekday)2; worki ng
11、 = (enum weekday) (5-3);/不能对其赋值&下列说法中正确的是哪一个? sizeof (char)是结果为整型的表达式 sizeof (char)是一个不合法的表示形式 sizeof (char)是一种函数调用 sizeof (char)是结果为实型的表达式二、阅读程序,并回答问题(共12分)1、下列程序的输出是什么? ( 3分)# in clude <stdio. h>void mai n ()char * aplha = “ABC”,“DEF”,“GHI”,“JKL”,“MNO”,“PQR” I; char *p;int i;p = aplha;fo
12、r (i =0; i<4; i+)printf (“ s ,printf ( n” “);输出结果ABCDEFGHIJKL刚好是字符串数组里面的前四个元素的内容连接起来2、下列程序为什么无法将用户输入的三个整数按从小到大排序输出?应该如何 修改? ( 6分)# in elude <stdio.h>void swap (int x, int y)int t = x;x = y;y = t;void mai n ()int a, b, e;seanf (“%d, %d, %d” , &a, & b, & e);if (a>b) swap (a, b)
13、;if (a>e) swap (a, e);if (b>e) swap (b, e);printf (“ %d, %d, %d ” , a, b, e);if (b>c) swap (& b, & c); 、 假设系统为基本整型量分配2个字节,为字符型量分配1个字节。下列程序 完成的功能是什么? ( 3分)# in elude vstdio. h>unionint n;char ch 2; u;void mai n ()int m;scanf ( “d”,& m);.n = m;printf ( “n%u, %u”, u.ch0, u.ch1);
14、/该程序的功能,取用户输入的整数值的高字节和低字节,并按照任意整数的低 字节和高字节分别输出。三、程序设计题(12分)假设一个文本文件中保存着100个整数,请将这100个整数按从小到大的顺序写 到另一个文本文件中去,并且在新文件中每 10个整数占一行。源文件名和目标 文件名通过命令行参数获取。分数分配:变量定义2分命令行参数处理1分文件打开1分文件读 2分排序3分文件写| 2分文件关闭1分# in clude <stdio. h>void main (int argc, char *argv)FILE *fin, *fout;Int a 100, i, j, t;if (argc!
15、=3)fin 二 fopen (argv1,“ r ” );fout = fopen (argv2,“W );for (i = 0; i<100; i+)fscanf (fin, “ d” ,& ai);for (i = 0; i<99; i+)for (i = 0; i<99 i; i+)if (aj>aj+1) t = aj; aj = aj+1; aj+1=t; I for (i = 0; i<100; i+)fprintf (fout,“r%S);, “fprintf (fout,“ %d , ai);Ifclose (fin);fclose (f
16、out);I1.3四川大学2002年攻读硕士学位研究生入学考试试题及答案第2002年C语言题目C语言程序设计(共30分)一、单项选择题(在每小题的四个备选答案中,选出一个正确答案。每小题1分,共6分)1、 如果I为整型变量,f为float型变量,c表达式'a'+I*f的类型为。A、字符型 B、整型 C、单精度型D、双精度型/即使是两个float型的数据相加,都化成double型float型的数据在运算时一律 转化成双精度型,提高其运算精度2、关于c表达式5|(a=b+c)=3的值,正确的说法为 。A、值为1肚、值为5 C、值为0D、仅这一个表达式,不能确定值,必须知道a,b,c
17、的值后才能计算。/等号=的优先级高于|所以先计算(a=b+c)=3但是不论它为真或假,在与5进 行或运算时,按照或运算的法则,只要一方为真,表达式的结果为真。 I3、 若整型变量a的值为50,则c表达式a>> 2的值为。A、50 B、25 C、12.5 D、12/每右移一位除以2,且由于a为整型,结果为整型4、若c,c1,c2均为字符型变量,下列语句执行后 c='a'c1=+c; c2=c+;c1,c2的值分别为0A、c1='b',c2='c' B、c1='a', c2='c'C c1='b
18、39;,c2='b'D、c1='a',c2='b'前加加,先加1后使用值,后加加是先使用其值在加加,所以c加加后的值赋予cl, cl得值b, c2先使用值,再加加,c2得值b5、以下c语句执行后,int i, s=0; for (i=O;i v 10;i+)s+=i;printf ('%dn', i);输出的内容为。A、0B、9 C、10D、11i值在循环外定义,所以其值循环结束仍有意义,得值106以下c语句执行后,char s1100 = 1 like C 1anguage" ,s2100;strcpy(s2, s1)
19、;strcat (s1, s2);puts (s2);输出的内容为。A、I B、I like C IanguageC、I like C Ianguage I like C IanguageD、I like C Ianguage I like C Ianguage I like C Ianguage连接后的串存在s1里,对s2没有影响二、 阅读程序,写出该程序的执行结果。(4分)# include stdio.hvoid mai n () char a 3 10= "Beijing ","Shanghai", "Chengdu"char
20、 p1, (*p2)10;p1=a0;p2=a;prin tf("%cn",*(a1+1);/ a1代表是第一行字符串Shanghaj加1后得值第一个字符h的地址,*取出其 地址里的值hprin tf("%cn",*(*(a+1)+2);/ *(a+i)=ai代表是第一行字符串Shangha,加2后得值第2个字符a的地址,* 取出其地址里的值prin tf("%cn",*(p1+1);p1是一字符指针,加一指向第零行第1个字符e的位置,*取出其地址里的值 prin tf("%cn",*(*(p2+1)+2);p2为
21、一指向数组的指针,p2是与数组名等价的指针,它指向2维数组的首行, p2+ 1指针指向了第一行字串Shangha,加2后得值第2个字符a的地址,*取 出其地址里的值prin tf("%sn",*(p1+1);/打印的从第一个字符开始的第零行余下的字符串eijingprin tf("%sn",*(p22);p22指的是第二行,打印第二行字符串Che ngduprin tf("%sn",*(p2 + 1);p2+1指向的是第一行字符串sha nghai三、按要求编写函数。(8分)在一程序中定义了如下结构类型用于处理单向链表:struct
22、linkage int value;struct lin kage *pNext;;现已经编写出按节点的成员a值从小到大建立初始链表的函数 create ()如下所示:struct lin kage * create (void )struct lin kage * pHead;int a4= 2,1,3,5;pHead=NULL;for(i=0;i v4;i+)return pHead;门 在该函数的for循环前,pHead为NULL ;在执行整个for循环后,创建的链表如 下所示:即在被调函数addltem()中,需要动态分配内存,生成新节点,将传入的第二参 数的值赋给该节点的成员valu
23、e:并通过第一个参数链表首节点确定适当位置放 置该新节点。请完成函数:struct li nkage * addltem (struct lin kage *pHead, int value );返回值指向单向链表头节点。 你可能用到下面的动态内存分配函数。void* malloc (un sig ned int size);其作用是在内存的动态存储区中分配一个长度为 size的连续空间。返回值为指向分配域起始地址的指针。1、在空链表中加第一个节点2分;2、加到当前链表头节点前2分;3、加到当前链表头节之后适当位置,可分为两步。 2分;4、其它部分2分,包括整体结构,变量定义,返回值。struct li nkage *addltem (struct lin kgae *pHead ,int value) struct lin kage *p ,*q,*r,*s;p
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年游戏开发程序员应聘面试指南及预测题
- 光电材料与器件教学课件
- 乡村教师廖老师教学课件
- 2025年电力系统运行值班员高级模拟题及解析
- 2025年特岗教师招聘面试初中生物高频考点预测
- 健全安全评价与监测体系支持企业安全管理
- 化工原理课程设计列管式换热器
- 青光眼护理查房
- 修辞手法教学课件
- 《望洞庭》教学课件
- 单证员岗位面试问题及答案
- 猪场员工安全培训课件
- 供货采购方案(3篇)
- 持续护理质量改进案例
- 中小学校教育教学课程改革五年事业发展规划纲要十五五发展行动
- 2026年高考历史一轮复习:必修+选必修共5套模块测试卷汇编(含答案解析)
- 2025至2030中国农资连锁超市行业发展趋势分析与未来投资战略咨询研究报告
- 人教版(2025)数学七年级(下)期末测试卷4(含答案)
- 小学教辅材料管理制度
- QGDW11447-202410kV-500kV输变电设备交接试验规程
- 2025年制药工程专业考试题及答案
评论
0/150
提交评论