C语言2000-2005年试题及其答案

上传人:cn****1 文档编号:564532478 上传时间:2023-03-31 格式:DOC 页数:39 大小:221.50KB
返回 下载 相关 举报
C语言2000-2005年试题及其答案_第1页
第1页 / 共39页
C语言2000-2005年试题及其答案_第2页
第2页 / 共39页
C语言2000-2005年试题及其答案_第3页
第3页 / 共39页
C语言2000-2005年试题及其答案_第4页
第4页 / 共39页
C语言2000-2005年试题及其答案_第5页
第5页 / 共39页
点击查看更多>>
资源描述

《C语言2000-2005年试题及其答案》由会员分享,可在线阅读,更多相关《C语言2000-2005年试题及其答案(39页珍藏版)》请在金锄头文库上搜索。

1、C Language for 20060 引言11历年川大考研真题讲评11.1 四川大学2000年攻读硕士学位研究生入学考试试题 及 答案11.2 四川大学2001年攻读硕士学位研究生入学考试试题 及 答案61.2.1第2001年C语言程序设计 题目61.3 四川大学2002年攻读硕士学位研究生入学考试试题 及 答案121.3.1 第2002年C语言题目121.4 四川大学2003年攻读硕士学位研究生入学考试试题及 答案201.4.1 第2003年C语言题目201.5 四川大学2004年攻读硕士学位研究生入学考试试题及 答案251.5.1 第2004年C语言题目251.6 四川大学2005年攻

2、读硕士学位研究生入学考试试题及 答案301.6.1 第2005年C语言题目300 引言1历年川大考研真题讲评 1.1 四川大学2000年攻读硕士学位研究生入学考试试题 及 答案C语言部分一、选择题(每小题2分,共10分)(下在各小题,分别有一个或多个正确答案,请将所有正确答案的编号,填写在该小题题干后的括号内。错选或漏选均不得分)。1、若定义:int a230,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是一个

3、指针,指向的是a1. *(a+1)为a1,a1指向的是a10. *(a+1)为6,加2得8,故C正确;D、a0与a相同 因二者都是指针,指针的地址都是指向数组中的第一个元素的地址,故D正确。E、a12的值为10它是指第二行的第三个元素,为10,正确2、对函数的正确使用方法描述( A,C,D )。A、用数组做函数参数时,必须在主调函数和被调函数中分别定义数组B、实参数组元素和形参数组元素类型可以不一致 C、形参数组长度可以不指定 D、形参数组长度可以大于实参数组长度E、数组名做参数属于值传递3、对静态变量的正确描述( A,B,D,E )A、静态局部变量在静态存储区内分配单元( )B、静态外部变量

4、可以赋初值,也可以不赋初值C、静态外部变量的作用与外部变量相同D、静态局部变量在函数调用结束时,仍保存其值,不会随着消失。E、静态局部变量只赋一次初值4、下列描述正确的是( A ,C)。A、由main 函数及其参数argc和* argv可以实现命令行方式B、使用fclose关闭文件时,先释放文件指针,再写缓冲区数据到文件中/先写缓冲区数据到文件中,再释放文件指针C、字符数组并不要求它的最后一个字符是0/是的,以字符指针指向的字符串才要求,因为只有这样,才能知道字符串的长度,而在字符数组中,不用0,一样可以知道到哪里是字符数组的结尾。D、A和“A”都是字符串常量 E、若char*S=“ta017

5、bc”;则指针变量S指向的字符串所占的字节数是75、在缓冲文件系统中用于读写的函数有( A,B,D )A、putchar () B、fread() C、rewind () D、purw() E、fseek()二、程序阅读,并给出运行结果(共10分,每题5分)。(1)main() unsigned a,b,x int n; a=0x763 输出结果: n=6; b=a(12-n); x=(an-2)b; /+,-,的优先级比高。 printf(“nb=%x,nx=%x”,b,x); 在用2个字节表示整数的系统中结果为d8c0d8b6在用4个字节表示整数的系统中结果为1d8c01d8b6故以上两种

6、结果都正确。 (2) #include stdin.h struct m int x;int *y; *p; int a 4=12,33,-40,100; struct m b 4=10,&a2,9,&a3,8,&a0,7,&a1 main() p=b; 输出结果: printf(“%dn”,+p-x); /-的优先级高于+,因此等于是+(p-x),为11 printf(“%dn”,(+p)-x); /p后移一个元素,其x值为9; printf(“%dn”,+(*p-y)); /-的优先级高于*, 此时p已指向b1,故*(p-y)为a3为100.自加后为101;故输出结果为:119101三、程

7、序设计(共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文件中,达到题意的要求。#includemain() FILE *fp,*fq,*fr; char

8、ch; if(fp=fopen(a.txt,r+)=NULL) printf(cannot open file a.txt); exit(0); if(fq=fopen(b.txt,r)=NULL) printf(cannot open file b.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,fr); rewind(fp)

9、; 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、对宏定义不正确的描述是哪一个?在进行宏定义时,可以引用已经定义的宏名,可以层层置换/可以引用已经定义了的宏名,可以层层置换宏名

10、的有效范围包括本文件的任何位置/宏名的有效范围定义命令之后到本源文件结束,可以用#define终止宏定义的作用域宠定义不是语句,不必在行末加分号/是预处理定义语句对程序中双引号括起来的字符串,即使与宏名相同,也不进行置换3、若定义static char s20=”computer”;则执行语句x = strlen(s);之后,x的值为多少?209819/strlen函数计算char*型字符串的长度的时候,并不包含末尾的0;4、以下哪一个表达式取值是正确的?65结果为665结果为76|5结果为765结果为05、如定义enum weekday one, two, thr, fou, fiv;enu

11、m weekday working;以下哪个是不正确的枚举变量的使用?working = thr;working =2;working = (enum weekday)2;working = (enum weekday) (5-3);/不能对其赋值6、下列说法中正确的是哪一个?sizeof (char) 是结果为整型的表达式sizeof (char) 是一个不合法的表示形式sizeof (char) 是一种函数调用sizeof (char) 是结果为实型的表达式二、阅读程序,并回答问题(共12分)1、下列程序的输出是什么?(3分)# include void main ()char * apl

12、ha 6 = “ABC”,“DEF”,“GHI”,“JKL”,“MNO”,“PQR”;char *p;int i;p = aplha;for (i = 0; i4; i+)printf (“%s”, pi);printf (“n”);/输出结果ABCDEFGHIJKL刚好是字符串数组里面的前四个元素的内容连接起来2、下列程序为什么无法将用户输入的三个整数按从小到大排序输出?应该如何修改?(6分)# include void swap (int x, int y)int t = x;x = y;y = t;void main ()int a, b, c;scanf (“%d, %d, %d”,

13、a, b, c);if (ab) swap (a, b);if (ac) swap (a, c);if (bc) swap (b, c);printf (“%d, %d, %d”, a, b, c);/函数swap采用值传递,虽然将形参x和y交换了,但是并不影响到实参。将值传递改成指针传递就可以了。C函数参数采用值传递方式,虽然swap函数将形式参数x和y的值进行了调换,但是影响不到相应的实在参数。所以在主函数中,通过调用sawp函数调换a和b(或a或c,或b和c)的值是根本达不到目的的。修改:(1)(2分)void swap (int *x, int*y)int t = *x;*x = *y;

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 高等教育 > 习题/试题

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号