1、C 语言程序设计考试题型示例 假设则计算表达式 x=(x+ , y+) , x+y;后 x 的值为( D)A)11 B)20 C)22 D)104如果要使用一维数组,其正确的定义是(D )A)int array ; B)const n=10, arrayn;C)int n, arrayn; cinn; D)int n=5, *array=new int n;5下述函数 myfun 的功能是( C ) int myfun(char s ,char t ) (A)将字符串 t 复制到字符串 s char *ps=s,*pt=t; (B )将串 s 连接到串 t 的尾部while(*ps)ps+;
2、(C)将串 t 连接到串 s 的尾部whie(*pt)*ps+=*pt+; (D)将字符串 s 复制到字符串 t*ps=0;6下面的程序运行后的输出结果是( A )void swap(int *x,int *y) main( ) int *t; int a=111,b=333;t=*x;*x=*y;*y=t; swap( cout=10)break ; if(x%2)continue ; sum=sum+x ; A)6,10 B)6,12 C)7,10 D)7,1215关于以下函数的功能,正确的描述是( C )void fun(int aC,int R) int i,j; A)输出矩阵全部元素
3、for(i=0;ii)continue ; coutnum; B)(p+1)-score; C)(*p).num D)p= char trans33=0;while(d) res=d%r; /取余数if(res=0) put char(transi-) 【3】; /反向输出trans中的字符2本程序功能是将两个递增整数表 LA=(3,5,8,11)和 LB=(2,6,8,9,11,15,20)归并到新的整数表 LC=(2,3,5,6,8,8,9,11,11,15,20)。整数表均采用单向链表存储。#includetypedef struct elem /链表结点类型 intNode 的定义 i
4、nt v; /数据域,存储整数struct elem *next; /指针域intNode;intNode *CreateList(intNode *Head , int n) /函数 :创建能存储 n 个整数的链表 intNode *pnew,*pend ; int i;/pnew 用于创建新结点,pend 为辅助指针for(i=1;ipnew-v;if(Head=NULL) Head=pnew 【4】;/ 若当前头指针为空,应赋什么值else pend-next=pnew; /新结点接入当前尾部结点之后pend=pnew ; pend-next=NULL; /pend 更新,当前尾结点指针
5、域赋空return(Head); /返回链表头指针/以下 MergeList( )函数,归并 LA、LB 到 LCintNode *MergeList(intNode *LA,intNode *LB,intNode *LC) intNode *pa=LA,*pb=LB,*pnew,*pend;while( pa /为 LC 创建新结点if(pa-vv) /若结点 pa 的 v 值小于或等于 pb 结点的 v 值 pnew-v=pa-v; /LC 的新结点的 v 赋值为 pa 结点的 v 值pa=pa-next; /当前结点处理完毕,pa 指针下移else pnew-v=pb-v 【6】 ; p
6、b=pb-next 【7】 ; if(LC=NULL)LC=pnew; /当前 LC 链表还为空else pend-next=pnew;pend=pnew ; pend-next=NULL;while(pa!=NULL) /如果 LA 比 LB 长,将剩余部分接入 LC pnew=new intNode;pnew-v=pa-v ; pa=pa-next;pend-next=pnew ; pend=pnew ; pend-next=NULL;while(pb!=NULL) /如果 LB 比 LA 长,将剩余部分接入 LC pnew=new intNode;Pnew-v=pb-v 【8】; pb=
7、pb-next 【9】;pend-next=pnew ; pend=pnew ; pend-next=NULL;Return LC 【10】; /此函数应返回什么值void main(void) /以 LA=(3,5,8,11)和 LB=(2,6,8,9,11,15,20)为实例数据intNode *LA=NULL,*LB=NULL,*LC=NULL;LA= CreateList(la 4) 【11】; /创建链表 LALB=CreateList(LB 7) 【12】; /创建链表 LBLC=MergeList(LA,LB,LC); /归并 LA 和 LB 到 LC3以下函数功能是使用对分法在
8、递增排序的整型数组 a 中查找指定元素SearchNum,算法思想是:取数组的中点下标 c,若 ac=SearchNum 则找到,若 SearchNum ac,则查找范围缩小为右半,否则缩小为左半,依此循环直到查找范围不能再缩小为止。void BisectSearch(int a , int n) /n 为数组长度,即元素个数 int s=0 , e=n-1 , c; /s 和 e 分别为查找范围的起点和终点下标,c 为中点int flag=0 , SearchNum; /flag 作为是否找到的标志,SearchNum 待查找cinSearchNum;if(a0=SearchNum) /判断
9、数组首元素 coutnext;outfile.close();coutnext=NULL;infile.read(char*)pnew,sizeof(StuNode);if(infile.tellg()next=NULL;else paid-next=pnew;paid=pnew;paid-next=NULL;/while,读文件结束infile.close();coutnext=NULL;coutpnew-ID;if(pnew-IDname,15);coutpnew-score;if(Head=NULL) Head=pnew;pnew-next=NULL;paid=pnew;else if(
10、pnew-IDID) pnew-next=Head;Head=pnew;else if(pnew-ID=paid-ID) paid-next=pnew;pnew-next=NULL;paid=pnew;else ps=Head;pe=ps-next;while(pnew-ID=pe-ID) ps=ps-next;pe=pe-next;ps-next=pnew;pnew-next=pe;return Head;/输出链表的函数 void PrintList(StuNode *Head)(省略)/主函数void main( ) StuNode *Head=NULL;Head=CreateList(
11、Head);SaveFile(Head);Head=ReadFile();PrintList(Head);system(“pause“);一、 选择题参考答案15: BCDDC 610: AABBC1115: BDADC 1620: AABAD二、 程序填空题参考答案【1 】 0+res 【2】 A+res%10【3 】 putchar(transi-) 【4】Head=pnew【5 】 pa&pb 【6】pnew-v=pb-v【7 】 pb=pb-next 【8】pnew-v=pb-v【9 】 pb=pb-next 【10】return LC【11 】CreateList(LA, 4) 【12】LB=CreateList(LB,7)【13 】e!=(s+1) 【14】flag=1【15 】break 【16】s=c【17 】e=c 【18】s+s_len-t_len【19 】pa+ 【20】pt+