版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
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、a与a相同因二者都是指针,指针的地址都是
2、指向数组中的第一个元素的地址,故D正确。E、a12的值为 10它是指第二行的第三个元素,为10,正确2、对函数的正确使用方法描述(A, C, D L)0A、用数组做函数参数时,必须在主调函数和被调函数中分别定义数组B、实参数组元素和形参数组元素类型可以不一致C、形参数组长度可以不指定D、形参数组长度可以大于实参数组长度E、数组名做参数属于值传递3、对静态变量的正确描述(A, B, D, E ) IA、静态局部变量在静态存储区内分配单元()B、静态外部变量可以赋初值,也可以不赋初值 厂C、静态外部变量的作用与外部变量相同D、静态局部变量在函数调用结束时,仍保存其值,不会随着消失。E、静态局部变量
3、只赋一次初值4、下列描述正确的是(A , C)。A、由main函数及其参数argc和* argv口可以实现命令行方式B、使用fclose关闭文件时,先释放文件指针,再写缓冲区数据到文件中/先写缓冲区数据到文件中,再释放文件指针C、字符数组并不要求它的最后一个字符是0'/是的,以字符指针指向的字符串才要求,因为只有这样,才能知道字符串的长度,而在字符数组中,不用0,一样可以知道到哪里是字符数组的结尾。D、,A,和“A”都是字符串常量|E、若char*S= "ta017bc" ;则指针变量S指向的字符串所占的字节数是 75、在缓冲文件系统中用于读写的函数有( A, B,
4、 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=(a>>n-2)Ab; /+,-,的优先级比 <<,>>高。printf(nx=%X,,b,x);在用2个字节表示整数的系统中 结果为d8c0d8b6在用4个字节表示整数的系统中 结果为1d8c01d8b6故以上两种结果都正确。(2) #includes
5、tdin.hstruct m int x;int *y;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),为 11printf ( "%dn",(+p)->x) ;/p 后移一个元素,其 x 值为 9;printf ( "dn",+(*p- >y);/->的优先级高
6、于*,此时p已指向b1,故*(p->y)为a3为100.自加后为101;故输出结果为:11 101三、程序设计(共10分)设在文件a.txt和文件b.txt中分别存有两个字符串,设计一个程序将这两个字符申按依序交叉的方式合并为一个字符串(例如“ aaaa<a与“bbb”的合并结果为“abababaa ,而“ bbb”与“aaaaOi的合作结果为“ bababaa ,)并将结果存 入文件a.txt中。写程序时,可以分别读取a.txt文件和b.txt文件,注意(1),无论a文件先读完 还是b文件先读完,程序都能作出适应性的判断。注意(2)把a和b合并的结 果,写到一个临时文件c中,最后
7、把c的文件覆盖到a文件中,达到题意的要求。#include<stdio.h>main()FILE *fp,*fq,*fr;char ch;if(fp=fopen("a.txt","r+")=NULL) printf("cannot open file a.txt");网址:if(fq=fopen("b.txt","r")=NULL) printf("cannot open file b.txt");exit(0);fr=fopen("c.txt"
8、;,"w+");while(!feof(fp)1 .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); 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语言程序设计 题目一、单项
9、选择题(在每小题的四个备选答案中,选出一个正确的答案,并将其号码写在答题纸上。请注意注明题号。每小题 1分,共计6分)1、 't'表示什么?字符串常数J标识符 变量;字符常量答案:2、对宏定义不正确的描述是哪一个?一在进行宏定义时,可以引用已经定义的宏名,可以层层置换/可以引用已经定义了的宏名,可以层层置换宏名的有效范围包括本文件的任何位置/宏名的有效范围定义命令之后到本源文件结束,可以用#de巾ne终止宏定义的作用域宠定义不是语句,不必在行末加分号/是预处理定义语句对程序中双引号括起来的字符串,即使与宏名相同,也不进行置换3、若定义 static char s20="
10、; computer” ;则执行语句 x = strlen(s);之后,x 的 值为多少?209 819/strlen函数计算char*型字符串的长度的时候,并不包含末尾的0;4、以下哪一个表达式取值是正确的?6>5结果为6I6&&5结果为76|5结果为7 J6<5结果为05、如定义enum weekday one, two, thr, fou, fiv;enum weekday working;以下哪个是不正确的枚举变量的使用? working = thr; working =2; working = (enum weekday)2; working = (enu
11、m weekday) (5-3);/不能对其赋值6、下列说法中正确的是哪一个?sizeof (char)是结果为整型的表达式sizeof (char)是一个不合法的表示形式sizeof (char)是一种函数调用sizeof (char)是结果为实型的表达式二、阅读程序,并回答问题(共12分)1、下列程序的输出是什么? ( 3分)# include <stdio. h>void main () char * aplha 6 = “ABC”,“DEF”,“GHI”,“JKL”,“MNO”,“PQR” ; char *p;int i;p = aplha;for (i = 0; i<
12、;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 ()int a, b, c;scanf ( "d, %d, %d” , &a, &b, &c);if (a>b) swap (a, b)
13、;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的值进行了调换 但是影响不到相应的实在参数。所以在主函数中,通过调用 sawp函数调换a; b (或a或c,或b和c)的值是根本达不到目的的。修改:(1) (2 分)void swap (int *x, int*y)int t = *x;*x = *y;*y = t;(
14、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>union int n;char ch 2; u;void main ()int m;scanf ( "d” , & m);u.n = m;printf ( "n%u, %u"
15、,u.ch0, u.ch1);/该程序的功能,取用户输入的整数值的高字节和低字节,并按照任意整数的低 字节和高字节分别输出。三、程序设计题(12分)假设一个文本文件中保存着100个整数,请将这100个整数按从小到大的顺序写 到另一个文本文件中去,并且在新文件中每 10个整数占一行。源文件名和目标 文件名通过命令行参数获取。分数分配:变量定义2分命令行参数处理1分文件打开1分文件读| 2分排序3分文件写| 2分文件关闭1分# include <stdio. h>void main (int argc, char *argv口) FILE *fin, *fout;Int a 100,
16、i, j, t;if (argc!=3)printf (" You forgot to enter a filena me;return;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; for (i = 0; i<100;
17、i+)fprintf (fout,"r%s);, “fprintf (fout, "d , ai);fclose (fin);fclose (fout);1.3四川大学2002年攻读硕士学位研究生入学考试试题及答案1.3.1 第2002年C语言题目C语言程序设计(共30分)1一、单项选择题(在每小题的四个备选答案中,选出一个正确答案。每小题 1分,共6分)1、如果I为整型变量,f为float型变量,c表达式'a'+I*f的类型为。A、字符型 B、整型 C、单精度型D、双精度型/即使是两个float型的数据相加,都化成double型float型的数据在运算时一
18、律 转化成双精度型,提高其运算精度2、关于c表达式5|(a=b+c)=3的值,正确的说法为。A、值为1值、值为5 C、值为0D、仅这一个表达式,不能确定值,必须知道a,b,c的值后才能计算。/等号=的优先级高于|所以先计算(a=b+c)=3但是不论它为真或假,在与5进 行或运算时,按照或运算的法则,只要一方为真,表达式的结果为真。 3、若整型变量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,
19、c2的值分别为1。 A、c1='b',c2='c' B、c1='a', c2='c' G c1='b',c2='b' D、c1='a',c2='b'/前加加,先加1后使用值,后加加是先使用其值在加加,所以c加加后的值赋予cl, cl得值b, c2先使用值,再加加,c2得值b5、以下c语句执行后,int i, s=0;for (i=0;i < 10;i+)s+=i;printf ('%dn', i);输出的内容为 。A、0 B、9 C、10 D、1
20、1/i值在循环外定义,所以其值循环结束仍有意义,得值 106、以下c语句执行后,char s1100 =" I like C 1anguage" ,s2100;strcpy(s2, s1);strcat (s1, s2);puts (s2);输出的内容为 。A、IB、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分)# inc
21、ludestdio.hvoid main () char a 3 10= "Beijing ”Shanghai", "Chengdu"char p1, (*p2)10;p1=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&
22、quot;,*(p1+1);/p1是一字符指针,加一指向第零行第1个字符e的位置,*取出其地址里的值 printf("%cn",*(*(p2+1)+2);/p2为一指向数组的指针,p2是与数组名等价的指针,它指向2维数组的首行, p2+1指针指向了第一行字用Shanghai加2后得值第2个字符a的地址,*取 出其地址里的值printf("%sn",*(p1+1);/打印的从第一个字符开始的第零行余下的字符串eijingprintf("%sn",*(p22);/p22指的是第二行,打印第二行字符串 Chengduprintf("
23、;%sn",*(p2 +1);/p2+1指向的是第一行字符串shanghai三、按要求编写函数。(8分)在一程序中定义了如下结构类型用于处理单向链表: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;i <4;i+)pHead=addItem(pHead,ai);return pHead;在该函数的for循环前,pHead为NULL ;在执行整个for循环后,创建的链表如 下所示:即在被调函数addItem()中,需要动态分配内存,生成新节点,将传入的第二参 数的值赋给该节点的成员value:并通过第一个参数链表首节点确定适当位置放 置该新节点。请完成函数:struct linkage * addItem (struct linkag
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2024年餐饮供货合同协议书范本
- 合同签订即生效 股权变更避风险
- 组织架构及岗位职责
- 指定汽车维修服务协议
- 年度项目可行性研究报告购买合同
- 劳动合同书【乡镇企业】
- 园林苗木购销合同范本
- 场地游戏安全协议书经典版
- 2024年个人劳务协议书
- 2024股权转让合同协议书范本
- 我的应许之地:以色列的荣耀与悲情
- 量检具培训 最终版
- 2.2.1细胞通过分裂产生新细胞说课稿-人教版生物七年级上册
- 山东省菏泽市成武县2023-2024学年六年级上学期11月期中科学试题
- 外商来华邀请函格式
- OBE理念下的课程目标设计
- 新视野大学英语(第四版)读写教程4(思政智慧版)课件 Unit1 Urban development Section A
- 智慧体育行业商业计划书
- 人教版一年级起点小学四年级英语上册全套教案
- 境外汇款申请书(完成)
- 小学三年级、三班家长会
评论
0/150
提交评论