南京师范大学计算机考试(C语言).docx

上传人:scccc 文档编号:14371793 上传时间:2022-02-04 格式:DOCX 页数:12 大小:19.19KB
返回 下载 相关 举报
南京师范大学计算机考试(C语言).docx_第1页
第1页 / 共12页
南京师范大学计算机考试(C语言).docx_第2页
第2页 / 共12页
南京师范大学计算机考试(C语言).docx_第3页
第3页 / 共12页
南京师范大学计算机考试(C语言).docx_第4页
第4页 / 共12页
南京师范大学计算机考试(C语言).docx_第5页
第5页 / 共12页
点击查看更多>>
资源描述

《南京师范大学计算机考试(C语言).docx》由会员分享,可在线阅读,更多相关《南京师范大学计算机考试(C语言).docx(12页珍藏版)》请在三一文库上搜索。

1、精品文档201507南京师范大学计算机考试(C语言)(试卷1)【程序设计理论】1 .题号:1(单选题)分值:2下列四个选项中,属于C语言关键字的是。A. FloatB. singleC. doubleD. real【答案:C 2 .题号:2(单选题)分值:2某程序需要使用一个代表常数3.14的符号常量名P,以下定义中正确的是A. #define P 3.14;B. #define P(3.14)C. #define P=3.14;D. #define P 3.14【答案:D 3 .题号:3(单选题)分值:2以下关于if语句和switch语句的叙述中错误的是A. if语句和switch语句都可以

2、实现算法的选择结构B. if语句和switch语句都能实现多路(两路以上)选择C. if语句可以嵌套使用D. switch语句不能嵌套使用答案:D】4 .题号:4(单选题)分值:2以下叙述中错误的是。A.在函数外可以声明变量B.变量声明的位置决定了该变量名的使用范围C.函数调用时在函数内声明的变量所得钊的值将无法保存到该函数的下一次调用D.在函数外声明的变量,其值可以保存到该程序运行结束【答案:C 5 .题号:61(单选题)分值:2有如下程序段:char p180= NanJing,p220= Young7P32Olympic strcpy(p1 ,strcat(p2,p3);printf(

3、“n% s ,p1 );执行该程序段后的输出是A. NanJingYoungOlympicB. YoungOlympicC. OlympicD. NanJing【答案:B】6 .题号:62(单选题)分值:2已有声明” int x,a=3,b=2;贝则执行赋值语句 x=ab+?a+ b+;后,变量x、a、b的值分别为A. 343B. 3 34C. 33 3D. 43 4【答案:A】7 .题号:63(单选题)分值:2已有预处理命令”#include 和声明int a=4,b;.以下语句中语法正确的是。A. if(a%2=1) b=a;B. if(sqrt(a)%2)b=a;C. if(a=1)b=

4、a;D. if(a=1)b=*a;【答案:C 8 .题号:64(单选题)分值:2已有如下定义和声明:struct dataint a;char b;float c; s=1,2,3;char m;以下语句中正确的是 。A. s=5;B. s=4,5,6);C. s.a=5;D. m=s;【答案:C 9 .题号:65(单选题)分值:2已有声明int *p;”,若用语句p=(int *)malloc(20 *sizeof(int)动态申请一个int型数组存储区,则p所指向的数组中可存储个int型数 据。A. 10B. 20C. 40D. 80【答案:B 10 .题号:66(单选题)分值:2已有声明

5、int x=0,*p;,则以下赋值表达式.中正确的是。A. p=x;B. *p= *x;C. &p=&x;D. p=&x;【答案:D 11 .题号:67(单选题)分值:2&、+、=、是C语言中的四个运算符,其中优先级最高的是A. B. &C. +D. =【答案:A 12题号:68(单选题)分值:2假定指针变量p指向对象的值为16, p+1指向对象的值为35,则*p+的值为A. 15B. 16C. 17D. 18【答案:B】13 .题号:69(单选题)分值:2 在系统头文件中定义的符号常量NULL代表的数值(整数)是。A. -1B. 1C. 0D. 0.0【答案:C 14 .题号:70(单选题)

6、分值:2 以下程序运行时输出到屏幕的结果是。 #include void main ()int a=011; print! (%d,a); )A. 6B. 7C. 8D. 9【答案:D 15. 题号:71(单选题)分值:2 用系统库函数fprintf写到磁盘文件中的数据通常应当用系统库函数 读出A. fscanf B. sscanf C. fgets D. tread【答案:A 16. 题号:72(填空题v1空)分值:2下程序运行时,输出到屏幕的结果是。#include int main()int a=6,b=15,t=a;while(t%b!=0) t+=a; printf(%d,t);re

7、turn 0;)【答案:】第1空答案1:(分值:2)3017. 题号:73(填空题1空)分值:2以下程序运行时,输出到屏幕的结果是。#includevoid fun(char *a,char *b)while(*a=*) a+;while(*b=*a)!=0) b+; a+;)int main() char *s=*a*b*,t80; fun(s,t);puts(t);return 0;)【答案:】第1空答案1:(分值:2)a*b*18. 题号:74(填空题v1空)分值:2以下程序运行时,输出到屏幕的结果是。#include #include void f(char s,char t) int

8、 i,m=strlen(t),k;for(i=0;si !=0,;i+) if(si=a & si=z,) k=ti%m-0,; si=(si-a+k)%26+a;)int main() char s110=Mabc2013; f(s1 ,123); puts(s1);return 0;【答案:】第1空答案1:(分值:2)bdf201319. 题号:75(填空题v2空)分值:4以下程序运行时,输出到屏幕的结果中第一行是,第二行是#includevoid fun(int *t) static int i=0;doti+=ti+1;while(+i3);)int main()int i,a10=1

9、,2,3,4,5; for(i=1 ;i3;i+) fun(a);for(i=0;i4;i+)printf(%d,ai);printf(”n%dn”,ai);return 0;【答案:】第1空答案1:(分值:2)3579第2空答案1:(分值:2)520. 题号:76(填空题v3空)分值:6以下程序运行时,输出到屏幕的结果中第一行 是,第二行是,第三行是#include#define N 3 int main() int aNN,bN*N=1,1,i,j;for(i=2;iN*N;i+) bi=bi-1 +bi-2;for(i=0;iN;i+)for(j=0;jN;j+)aij=bi*N+j;f

10、or(i=0;iN;i+) forQ=0;jN;j+)printf(%5d,ai0); printf(n);return 0; i【答案:】第1空答案1:(分值:2) 1 1 2第2空答案1:(分值:2)358第3空答案1:(分值:2)1321 3421. 题号:77(填空题)分值:4以下程序运行时,输出到屏幕的结果中第一行是,第二行是#includevoid fun(int a,int n)intfor(i=0;in-1 ;i+) for(j=i+1 ;jn;j+) if(aiaj)t=ai;ai=aO; ag=t;)int main()int aa6=1,2,3,4,5,6,i;fun(a

11、a+2 ;for(i=0;i6;i+) printf(H%d5aai);)%3=0)printf(n);return 0;)【答案:】第1空答案1:(分值:2)125第2空答案1:(分值:2)436【操作题】22题号:9(完善程序)分值:12【要求】1 打开T盘中的文件myfO.c,按以下程序功能完善文件中的程序。2 .修改后的源程序仍保存在T盘myfO.c文件中。【程序功能】以下程序的功能是反转一个字符串中单词的顺序。例如,将字符串there is no try中单词顺序反转后变为is there,假定以空格作try no 为单词分隔符。【测试数据与运行结果】测试数据:there is no

12、 try 屏幕输出:try no is there【待完善的源程序】#include #include #include void reverseWords(char str1,char str2)(int tokenPos5wReadPos,wEnd5writePos;writePos=O;/* tokenPos记录向前扫描(从串尾到串首扫描)strl字符串时当前被判断字符的下标*/tokenPos= ;while(tokenPos=0)(if(strltokenPos=,)(str2writePos+=str1 tokenPos-;/*复制单词之间的空格*/elsewEnd=tokenPo

13、s;/*wEnd记录strl字符串中被处理单词的尾字符下标*/While (tokenPos=0 & str1tokenPos!=f!) /* 向前扫描到空格为止 +, tokenPos-;/*wReadPos记录strl字符串中被处理单词的首字符下标*/wReadPos= ;while(wReadPos=wEnd) str2writePos+=str1 wReadPos+;1 一 )tr2writePos= ;/*在str2数组中置字符串的终止符7 int main() (char *sentence=Hthere is no try”,*reverse; reverse=(char *)m

14、alloc(strlen( )+1 ); printf(srT,sentence);reverseWords(sentence,reverse);printf(n%sn,reverse);free(reverse);return 0; 【答案:】strlen(str1)-1 tokenPos+10rsentence23题号:10(改错题)分值:16【要求】打开T盘中的文件myfLc,按以下程序功能改正文件中程序的错误。可以修改语句中的一部分内容,调整语句次序,增加少量的变量说明或者 编译预处理命令,但不能增加其他语句,也不能删去整条语句。修改后的源程序仍保存在T盘myfLc中。【程序功能】一个

15、字符串与它的反序串相同,这样的串称为回文。例如“12321“,“ 1”等就是回文。判断一个字符串是否是回文,同时从左往右和从右往左逐个判断所有字符是否相同,如果都相同则为回文。【测试数据与运行结果】测试数据:12321屏幕输出:回文测试数据:1234屏幕输出:不是回文【含有错误的源程序】include void main() (char str20;int i=0Jen=0; int p=O,q=O; scanf(,%s,str); while (str) i+; len = i;P=o;q=len;while (pq)printf(回文);elseprintf(不是回文); )【答案:】in

16、clude void main() (char str20;int i=0,len=0;int p=O,q=O; scanf(,%s,str); while stri;len = i;P=o;q=len-1;while (pq)printf(回文);elseprintf(不是回文”); )24 .题号:11(编程题) 分值:11【要求】打开T盘中的文件myf2.c,在其中输入所编写的程序。【程序功能】将十六进制字符串转换为十进制数,与将十进制字符串转换成整数类似 先减去字符0的ASCII码值,然后再将一个个数拼成整数。而 十六进制中因为有字符A-F和a-e,有所不同,要将字符A-E或者a-e转

17、换成10-15。【编程要求】 1、编写程序int fun(char s)。函数功能:根据十六进制的数字字符串s.计算相应的十进制整数,并返回之。2、编写main函数。函数功能:声明字符数组s ;从键盘输入十六进制字符串并存入数组s中;用s数组作为实参调用fun函数,得到返回值;输出返回值。 【测试数据与运行结果】测试数据:1A屏幕输出:26【答案:】25 .题号:78(编程题)分值:11打开T盘中的文件myf3.c,在其中输【要求】1.入所编写的程序,输出结果数据文件取名myf3.out。2数据文件的打开、使用、关闭均用C语言标准库中缓冲文件系统的文件操作函数实现。【程序功能】约瑟夫问题:n个人围成一圈,从第一个人开始顺序报数,从1报至ij m,报到m的人出列;从出列的下一个人开始重新报数,报到m的人又出列;如此重复直到所有人出列为止。最后出列的人是谁? 【编程要求】1、编写程序int fun(int m,int n)。函数功能:根据m和n求解约瑟夫问题,并返回最后出列入的序号。2、编写main函数。函数功能:声明变量m和n ;从键盘输入m和n的值;用m和n作为实参调用fun函数,得到返回值;将返回值输出到屏幕和文件myf3.out中,最后将考生本人的学号字符串也输出到文件myf3.out中。【测试数据与运行结果】测试数据:输入n为5 m为3屏幕输出:4答案:】

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 社会民生


经营许可证编号:宁ICP备18001539号-1