语言试题及答案97485_第1页
语言试题及答案97485_第2页
语言试题及答案97485_第3页
语言试题及答案97485_第4页
语言试题及答案97485_第5页
已阅读5页,还剩5页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、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是一个指针,指向的是a1.  *(a+1)为a1,a1指向的是a10.  *(a+1)为6,加2得8,故C正确;D

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

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

4、度,而在字符数组中,不用0,一样可以知道到哪里是字符数组的结尾。D、A和“A”都是字符串常量   E、若char*S=“ta017bc”;则指针变量S指向的字符串所占的字节数是75、在缓冲文件系统中用于读写的函数有( A,B,D  )A、putchar ()    B、fread()  C、rewind ()    D、purw()   E、fseek()二、程序阅读,并给出运行结果(共10分,每题5分)。

5、(1)main() unsigned a,b,x   int n;   a=0x763                       输出结果:   n=6;   b=a(12-n);   x=(an-2)b;&

6、#160; /+,-,的优先级比<<,>>高。   printf(“nb=%x,nx=%x”,b,x);    在用2个字节表示整数的系统中结果为d8c0d8b6在用4个字节表示整数的系统中结果为1d8c01d8b6 故以上两种结果都正确。   (2) #include stdin.h   struct m int x;int *y;      

7、;        *p; int a 4=12,33,-40,100;  struct m b 4=10,&a2,9,&a3,8,&a0,7,&a1'  main()  p=b;                输出结果:  pri

8、ntf(“%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 三、程序设计(共10分)设在文件a.txt和文件b.txt中分别存有两个字符串,设计一个程序将这两个字符串按依序交叉的方式合并为一个字符串(例如“aaaaa”与“bbb”的

9、合并结果为“abababaa”,而“bbb”与“aaaaa”的合作结果为“ bababaa”,)并将结果存入文件a.txt中。【答案】写程序时,可以分别读取a.txt文件和b.txt文件,注意(1),无论a文件先读完还是b文件先读完,程序都能作出适应性的判断。注意(2)把a和b合并的结果,写到一个临时文件c中,最后把c的文件覆盖到a文件中,达到题意的要求。#include<stdio.h>main()  FILE *fp,*fq,*fr;  char ch;  if(fp=fopen("a.txt&qu

10、ot;,"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);   

11、;  fr=fopen("c.txt","w+");   while(!feof(fp)        ch=fgetc(fp);  fputc(ch,fr);  if(!feof(fq)      ch=fgetc(fq);    fputc(ch,fr);  

12、60;     while(!feof(fq)        ch=fgetc(fq);  fputc(ch,fr);      rewind(fp); rewind(fr);   while(!feof(fr)        ch=fgetc(fr);  f

13、putc(ch,fp);       fclose(fp);  fclose(fq); fclose(fr);   1.2 四川大学2001年攻读硕士学位研究生入学考试试题 及 答案第2001年C语言程序设计 题目一、单项选择题(在每小题的四个备选答案中,选出一个正确的答案,并将其号码写在答题纸上。请注意注明题号。每小题1分,共计6分)1、t表示什么?字符串常数  标识符  变量 

14、60;字符常量答案:2、对宏定义不正确的描述是哪一个?在进行宏定义时,可以引用已经定义的宏名,可以层层置换/可以引用已经定义了的宏名,可以层层置换宏名的有效范围包括本文件的任何位置/宏名的有效范围定义命令之后到本源文件结束,可以用#define终止宏定义的作用域宠定义不是语句,不必在行末加分号/是预处理定义语句对程序中双引号括起来的字符串,即使与宏名相同,也不进行置换3、若定义static char s20=”computer”;则执行语句x = strlen(s);之后,x的值为多少?20    9    8&#

15、160;  19/strlen函数计算char*型字符串的长度的时候,并不包含末尾的0;4、以下哪一个表达式取值是正确的?6>5结果为6      65结果为76|5结果为7      6<5结果为05、如定义enum weekday one, two, thr, fou, fiv;enum weekday working;以下哪个是不正确的枚举变量的使用?working = thr;    &

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

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

18、)int a, b, c;scanf (“%d, %d, %d”, a, b, c);if (a>b)  swap (a, b);if (a>c)  swap (a, c);if (b>c)  swap (b, c);printf (“%d, %d, %d”, a, b, c);/函数swap采用值传递,虽然将形参x和y交换了,但是并不影响到实参。将值传递改成指针传递就可以了。C函数参数采用值传递方式,虽然swap函数将形式参数x和y的值进行了调换,但是影响不到相应的实在参数。所以在主函

19、数中,通过调用sawp函数调换a和b(或a或c,或b和c)的值是根本达不到目的的。修改:(1)(2分)void swap (int *x, int*y)int t = *x;*x = *y;*y = t;(2)(2分)主函数if(a>b) swap(a,b);if(a>c) swap(a,c);if(b>c) swap(b,c); 3、假设系统为基本整型量分配2个字节,为字符型量分配1个字节。下列程序完成的功能是什么?(3分)# include <stdio. h>unionint n;char ch 2;u;void ma

20、in ()int m;scanf (“%d”,m);u.n = m;printf (“n%u, %u”,u.ch0, u.ch1); /该程序的功能,取用户输入的整数值的高字节和低字节,并按照任意整数的低字节和高字节分别输出。 三、程序设计题(12分)假设一个文本文件中保存着100个整数,请将这100个整数按从小到大的顺序写到另一个文本文件中去,并且在新文件中每10个整数占一行。源文件名和目标文件名通过命令行参数获取。 分数分配:变量定义   2分命令行参数处理  1分文件打开   1

21、分文件读    2分排序    3分文件写    2分文件关闭   1分# include <stdio. h>void main(int argc, char *argv)FILE *fin, *fout;Int a 100, i, j, t;if(argc!=3)printf (“ You forgot to enter a filenamen”);return;fin = fopen (argv1, “r”);fout = fo

22、pen (argv2, “w”);for (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)t = aj; aj = aj+1; aj+1=t;for (i = 0; i<100; i+)if (i%10 = 0)fprintf (fout, “%s”, “n”);fprintf (fout, “%d”, ai);fclose (fin);fclose (fout);  1.3

23、0;四川大学2002年攻读硕士学位研究生入学考试试题 及 答案 第2002年C语言题目C语言程序设计(共30分)一、单项选择题(在每小题的四个备选答案中,选出一个正确答案。每小题1分,共6分)1、如果I为整型变量,f为float型变量,c表达式'a'+I*f的类型为         。A、字符型    B、整型   C、单精度型     D、

24、双精度型/即使是两个float型的数据相加,都化成double型 float型的数据在运算时一律转化成双精度型,提高其运算精度2、关于c表达式5|(a=b+c)=3的值,正确的说法为      。A、值为1    B、值为5    C、值为0  D、仅这一个表达式,不能确定值,必须知道a,b,c的值后才能计算。/等号=的优先级高于|所以先计算(a=b+c)=3但是不论它为真或假,在与5进行或运算时,按照或运算的法则,只要一方为

25、真,表达式的结果为真。 3、若整型变量a的值为50,则c表达式a2的值为      。A、50    B、25   C、12.5   D、12/每右移一位除以2,且由于a为整型,结果为整型4、若c,c1,c2均为字符型变量,下列语句执行后。c='a'c1=+c;c2=c+;c1,c2的值分别为          

26、           。A、c1='b',c2='c'    B、c1='a', c2='c'      C、c1='b',c2='b'   D、c1='a',c2='b'/前加加,先加1后使用值,后加加是先使用其值在加加,所以c加

27、加后的值赋予c1,c1得值b,c2先使用值,再加加,c2得值b5、以下c 语句执行后,   int i,   s=0;for (i=0;i10;i+)s+=i;printf   ('%dn', i);输出的内容为            。A、0       B、9  

28、60; C、10         D、11/i值在循环外定义,所以其值循环结束仍有意义,得值106、以下c语句执行后,char s1100 =I like C 1anguage,s2100;strcpy(s2, s1);strcat (s1, s2);puts (s2);输出的内容为              。A、I   &#

29、160;B、I like C language     C、I like C language I like C languageD、I like C language I like C language I like C language/连接后的串存在s1里,对s2没有影响二、阅读程序,写出该程序的执行结果。(4分)# include stdio.hvoid main (  )  char a 3 10="Beijing ","Shanghai", &

30、quot;Chengdu"char p1, (*p2)10;p1=a0;p2=a;printf("%cn",*(a1+1);/ a1代表是第一行字符串Shanghai,加1后得值第一个字符h的地址,*取出其地址里的值hprintf("%cn",*(*(a+1)+2);/ *(a+i)=ai 代表是第一行字符串Shanghai,加2后得值第2个字符a的地址,*取出其地址里的值printf("%cn",*(p1+1);/p1是一字符指针,加一指向第零行第1个字符e的位置,*取出其地址里的值printf("%c

31、n",*(*(p2+1)+2);/p2为一指向数组的指针,p2是与数组名等价的指针,它指向2维数组的首行,p21指针指向了第一行字串Shanghai,加2后得值第2个字符a的地址,*取出其地址里的值printf("%sn",*(p1+1); /打印的从第一个字符开始的第零行余下的字符串eijingprintf("%sn",*(p22);/p22指的是第二行,打印第二行字符串Chengduprintf("%sn",*(p21); /p2+1指向的是第一行字符串shanghai三、按要求编写函数。(8分)在一

32、程序中定义了如下结构类型用于处理单向链表:struct linkage     int value;    struct linkage *pNext;现已经编写出按节点的成员a值从小到大建立初始链表的函数create (  ),如下所示:   struct linkage * create (void )    struct linkage * pHead;int a4=2,1,3,5;pHead=NULL;for (i=0;i4;i+)pHead=addItem(pHead,ai);return pHe

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论