c语言试题及答案46408.docVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
C语言部分 一、选择题(每小题2分,共10分) (下在各小题,分别有一个或多个正确答案,请将所有正确答案的编号,填写在该小题题干后的括号内。错选或漏选均不得分)。 1、若定义:int a[2][3]{0,2,4,6,8,10};以下描述正确的有(?A,C,D,E?) A、*(a+1)为元素6的地址? 这里a+1=a[1]的地址;*(a+1)的值是6,故A正确。 B、*(a[1]+1)的值为2 为8,故B不正确 C、**(a+1)+2的值为8 这里a+1是一个指针,指向的是a[1].??*(a+1)为a[1],a[1]指向的是a[1][0].??**(a+1)为6,加2得8,故C正确; D、a[0]与a相同??? 因二者都是指针,指针的地址都是指向数组中的第一个元素的地址,故D正确。 E、a[1][2]的值为10 它是指第二行的第三个元素,为10,正确 2、对函数的正确使用方法描述(?A,C,D??)。 A、用数组做函数参数时,必须在主调函数和被调函数中分别定义数组 B、实参数组元素和形参数组元素类型可以不一致 C、形参数组长度可以不指定????D、形参数组长度可以大于实参数组长度 E、数组名做参数属于值传递 3、对静态变量的正确描述(?A,B,D,E??) A、静态局部变量在静态存储区内分配单元(????) B、静态外部变量可以赋初值,也可以不赋初值 C、静态外部变量的作用与外部变量相同 D、静态局部变量在函数调用结束时,仍保存其值,不会随着消失。 E、静态局部变量只赋一次初值 4、下列描述正确的是(??A?,C)。 A、由main?函数及其参数argc和* argv[]可以实现命令行方式 B、使用fclose关闭文件时,先释放文件指针,再写缓冲区数据到文件中 //先写缓冲区数据到文件中,再释放文件指针 C、字符数组并不要求它的最后一个字符是‘\0’ //是的,以字符指针指向的字符串才要求,因为只有这样,才能知道字符串的长度,而在字符数组中,不用\0,一样可以知道到哪里是字符数组的结尾。 D、‘A’和“A”都是字符串常量??? E、若char*S=“\ta\017bc”;则指针变量S指向的字符串所占的字节数是7 5、在缓冲文件系统中用于读写的函数有(?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=(a>>n-2)^b;??//+,-,的优先级比,高。 ???printf(“\nb=%x,\nx=%x”,b,x); ???} ? 在用2个字节表示整数的系统中 结果为 d8c0 d8b6 在用4个字节表示整数的系统中 结果为 1d8c0 1d8b6 ? 故以上两种结果都正确。 ? ??(2) #include?〈stdin.h〉 ???struct m?{int x; int *y; ???????????}???*p; ?int a [4]={12,33,-40,100}; ??struct m b [4]={10,a[2],9,a[3],8,a[0],7,a[1]} ??main() { ??p=b;????????????????输出结果: ??printf(“%d\n”,++p->x); //-的优先级高于++,因此等于是++(p-x),为11 ??printf(“%d\n”,(++p)->x); //p后移一个元素,其x值为9; ??printf(“%d\n”,++(*p->y)); ?//-的优先级高于*,?此时p已指向b[1],故*(p-y)为a[3]为100.自加后为101; } 故输出结果为: 11 9 101 ? 三、程序设计(共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文件中,达到题意的要求。 #includestdio.h main() { ??FILE *fp,*fq,*fr; ??char ch; ??

文档评论(0)

jiupshaieuk12 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

版权声明书
用户编号:6212135231000003

1亿VIP精品文档

相关文档