C语言考试试卷

上传人:鲁** 文档编号:498359339 上传时间:2023-11-21 格式:DOC 页数:10 大小:75.50KB
返回 下载 相关 举报
C语言考试试卷_第1页
第1页 / 共10页
C语言考试试卷_第2页
第2页 / 共10页
C语言考试试卷_第3页
第3页 / 共10页
C语言考试试卷_第4页
第4页 / 共10页
C语言考试试卷_第5页
第5页 / 共10页
点击查看更多>>
资源描述

《C语言考试试卷》由会员分享,可在线阅读,更多相关《C语言考试试卷(10页珍藏版)》请在金锄头文库上搜索。

1、二级 C语言考试试卷(考试说明及第一部分计算机基础知识略)第二部分 C语言程序设计一、选择题(用答题卡答题,答案依次填在2130答题号内)21. 若有声明语句char s110=0,s210= books;则能将字符串books赋给数组s1保存的表达式是 21 。A. s1=”books”; B. strcpy(s2,s1);C. s1=s2; D. strcat(s1,s2);22. 表达式(a=4*5,b=a*2),b-a,a+=2的值是 22 。A2 B. 20 C. 22 D. 42 23. 以下是一个自定义函数的头部,其中正确的是 23 。A. int fun(int a ,b) B

2、. int fun(int a ,int a)C. int fun(int * a,int b) D. int fun(char a ,int b)24. 以下数组声明语句中正确的是 24 。Aint n,an; B. int a ;C. int a23=1,2,3; D. int a 3=1,2,3; 25已知在某C语言编译系统中表达式sizeof(int)的值是2,如果希望将常量-70000正确地保存在一个变量a中,该变量声明语句应当是 25 。Aint a; B. long int a;C. unsigned int a; D. unsigned long int a;26. 以下声明语

3、句中,用于声明一个行指针变量的是 26 。A. int *p(int); B. int *p;Cint (*p)3; D. int (*p)(int);27. 已知A盘根目录下的一个文本数据文件data.dat中存储了100个int型数据,若需要修改该文件中已经存在的若干个数据的值,只能调用依次fopen函数,已有声明语句FILE*fp;则fopen 函数的正确调用形式是 27 。A. fp=fopen(”a:data.dat”,”r+”); B. fp=fopen(”a:data.dat”,”w+”);C. fp=fopen(”a:data.dat”,”a+”); D. fp=fopen(”

4、a:data.dat”,”w”);28. 在以下程序中,需要在fun函数中声明一个int型的变量,以下选项中 28 不能用作该变量的名字。Ax B. y C. fabs D. fun #includeint y;main( )int a=1; fun(a);int fun(int x) ; /* int型变量声明语句位置*/ /*若干执行语句*/29如有语句:int x,y=0,z,* p3;p0=&x;p1=&y;p2=&z; 以下表达式中有语法错误的是 29 。Ay+ B. p+ C. *+p0 D. (*p0)+30. 设有声明语句:int a33=1,2,3,4,5,6,7,8,9;以

5、下语句中除 30 外均能输出a12的值。Aprintf(“%d”,*(*(a+1)+2); B. printf(“%d”,*(&a20-1);C. printf(“%d”,*(a1+2); D. printf(“%d”,*(a+1)2);二、填空题(将答案填写在答题纸的响应答题号内,每个答案只占一行)l 基本概念题(共5分)1只能在循环体中出现的语句是 (1) 语句。2 & 既可以用作单目运算符也可以用作双目运算符,其中用作单目运算符时表示的功能是 (2) 。3包含二目运算符的表达式可一般的表示为(x)op(y),其中op代表运算符x、y代表操作数。若op 是“+”运算符,且x和y均为常量时,

6、不能同时为 (3) 常量。4当 (4) 语句被执行时,程序的执行流程无条件地从一个函数跳转到另一个函数。5在函数内部声明局部变量时缺省了存储类型,该变量存储类型为 (5) 。l 阅读程序写出运行结果题(共10分)6以下程序段运行后,x、y、z的值分别是 (6) 。int x=0,y=3,z=2;if(x+&y+)z-;else if(x+1=6|y-)z+;7. 设有以下宏定义:#define N3#define Y(n) (N+1)* n)则执行语句z=2 * (N+Y(5+1);后,z的值为 (7) 。8程序int x=1;main( ) int y,k; y=f(3);printf(“%

7、dn%d”,x,y);int f(int x) if(x=3) int x=2; return x; else return x; 该程序运行后,输出x 的值是 (8) ,y的值是 (9) 。9程序main() int a33=1,2,3,4,5,6,7,8,9,m,k,t;for(m=0;m3;m+) for(k=0;k=m;k+) if(m+k)%2) t=amk,amk=akm,akm=t;for(m=0;m3;m+) for(k=0;k3;k+) printf(“%d”,amk); printf(“n”);该程序执行时输出第一行是 (10) ,第二行是 (11) 。10程序#inclu

8、deint convert(char s1 ,char s2 ,int *n1) int i=0,j=0,k,s=0,len;int value=0;char tab16=”0123456789ABCDEF”;len = strlen(s1);if(len%4) for(i=0;ilen%4;i+) s=s*2+s1i-0; s2j+=tabs;value=value*16+s;while(ilen) s=0; for=(k=0;k4;k+) s=s*2+s1i+k-0;s2j+=tabs;value=value*16+s;i=r+4;s2j=0;* n1=strlen(s2);return

9、value;main( ) char ss1 =”1001010”,ss210; int x,y;y=convert(ss1,ss2,&x);printf(“%dn%dn%s”,x,y,ss2);该程序执行时输出第一行是 (12) ,第二行是 (13) ,第三行是 (14) 。11程序main( ) int a33,i,j; numlist(&a00,9);for(I=0;I3;I+) for(j=0;j3;j+)printf(“%d”,aij); printf(“n”); numlist(int *p,int n) int i;for(i=0;in;i+) pi=num(i); num(in

10、t n) if(n=0)return 1;return num(n-1)*2+1;程序执行时输出的第一行是 (15) 。l 完善程序题(共15分)12程序功能:合并两个已经按照升序排列的一维数组。Insert函数功能:将m插入x指向的含有n个元素的数组中,数组中n个元素已按升序排列,插入m后的n+1个元素仍保持有序。void insert(int x ,int n,int m);main( ) int a10=1,3,5,7,9,b5=2,4,8,16,32,k;for(k=0;k5;k+) insert(a, (16) ,bk);for(k=0;kxn-1) (17) =m; else fo

11、r (i=; (18) ;i+); for(j=n;j=i;j-) xj= (19) ; xi=m; 13 程序功能:查找满足下列条件的m,n值。给定正整数k,0m=k,0n=k,求使(n2-mn-m2)2=1 且使n2+m2的值达到最大的值。# includemain( ) long m,n,k,s,flag=0;printf(input k:);scanf(%ld,&k);n=k;do m=_(20)_;do s=n*(n-m)-m*m;if(s*s=1) (21) ;else m-; while(m0&! flag);if(m=0) (22) ;while(n0&! flag);prin

12、tf(m=%ld,n=%ld,m,n);14 已知链表中结点的数据结构定义如下:# includestruct node int x;struce node *next;;函数loop功能:根据dir的值循环移位head指向的链表中的所有结点,当dir为正整数时实现循环右移一次,否则循环左移一次。函数返回链表首结点的指针。例如,移位前的链表数据:head-1-3-5-4。右移一次后的链表数据:head-4-1-3-5。算法提示:循环右移时,将链表最后一个结点删除,再将其插入到链表首部;循环左移时,将链表的第一个结点删除,再将其连接到链表尾部。struct node *loop(struce node *head,int dir) s

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

当前位置:首页 > 幼儿/小学教育 > 小学课件

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