西华大学C语言程序设计复习题参考_第1页
西华大学C语言程序设计复习题参考_第2页
西华大学C语言程序设计复习题参考_第3页
西华大学C语言程序设计复习题参考_第4页
西华大学C语言程序设计复习题参考_第5页
已阅读5页,还剩6页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、西华大学 C 语言程序设计复习题 C 语言程序设计考试题型示例& 复习例程一、单项选择题1.以下四组变量标识符均为合法的就是( B ) 。A)cosx_Value、CASE、sin(x)B)Sum_Value、x01_value、xxxC)a_b_c_01、D)Num# 、abc_01、X_value_A2.设有二维数组定义 :float a33 ;假设 &a00= =2001H, 则&a22= =( C ) 。A)2010HB)2036HC)2021HD)2024H3.设有整型变量x 与 y,且 x=y=10; 则计算表达式 x=(x+ , y+) , x+y; 后

2、x 的值为( D)A)11B)20C)22D)104.如果要使用一维数组 ,其正确的定义就是 (D)A)int array ;B)constn=10, arrayn;C)int n, arrayn; cin>>n;D)int n=5, *array=new int n;5.下述函数 myfun 的功能就是 ( C )int myfun(char s ,char t )(A) 将字符串 t 复制到字符串 schar *ps=s,*pt=t;(B)将串 s 连接到串 t 的尾部while(*ps)ps+;(C)将串 t 连接到串 s 的尾部whie(*pt)*ps+=*pt+;(D)将

3、字符串 s 复制到字符串 t*ps=0;6.下面的程序运行后的输出结果就是 ( A )void s *x,int *y)main( )int *t;int a=111,b=333;t=*x;*x=*y;*y=t;s);cout<<a<<t<<b<<endl;(A)111333(B)333111(C)111111(D)3333337.下面的程序运行后的输出结果就是 ( A )intx=100;main( )void myfun()int x=100;int i;myfun( );for(i=1;i<=10;i+)x+;cout<<

4、x<<endl;(A)100(B)110(C)0(D)随机值8.程序段 char str110=”Hello”, str210=”Hello! ”;if(strcmp( str1,str2 )puts(“Yes”) ; else puts(“No”); 的输出结果就是 ( B)A)NoB)YesC)语法错误D)无输出结果9.下面的程序段的输出结果就是 ( B ) int a33=11,22,33,44,55,66,77,88,99;西华大学 C 语言程序设计复习题int *p=a0+1;cout<<*p<< t<<*(*(a+1)+1)<&

5、lt;endl;A)1113B)2255C)1111D)121110.函数调用 :strstr(strcat(str1,str2),str3)的功能就是 (C ) A) 将串 str1 复制到串 str2 中后再连接到串 str3 之后B)将串 str1 连接到串 str2 之后 ,再在 str1 中定位串 str3 C)将串 str2 复制到串 str1 中后再将串 str3 连接到串 str1 之后D)将串 str2 连接到串 str1 之后 ,再在 str1 中定位 str311.设有结构体类型 stuNode 的定义如下 ,则 sizeof(stuNode)的大小就是 ( B )个字节

6、 :typedef struct studentint num;A)16char name8;B)20float score;C)24struct student *next;D)17stuNode;12.关于 C 语言 ,以下叙述中正确的就是 (D)。A) 构成 C 程序的基本单位就是文件B)可以在一个函数中定义另一个函数C)main()函数必须放在其它函数之前D)除 main()以外的函数也可以调用自身13.程序设计的三个层次由低到高的顺序就是(A)A) 机器语言程序设计汇编语言程序设计高级语言程序设计B)汇编语言程序设计机器语言程序设计高级语言程序设计C)高级语言程序设计汇编语言程序设计

7、机器语言程序设计D)机器语言程序设计高级语言程序设计汇编语言程序设计14.下面的程序段执行后 ,x、sum 的值就是 ( D )int x=1,sum=0;while(x+)if(sum>=10)break ; if(x%2)continue ; sum=sum+x ;A)6,10B)6,12C)7,10D)7,1215.关于以下函数的功能 ,正确的描述就是 ( C )void fun(int a C,int R)int i,j;A) 输出矩阵全部元素for(i=0;i< R;i+)B)输出矩阵上半三角for(j=0;j< C;j+)C)输出矩阵下半三角if(j>i)c

8、ontinue ; cout<<setw(3)<<aij); D) 没有什么输出结果 cout<<endl;西华大学 C 语言程序设计复习题16.在函数调用时 ,以下叙述中正确的就是 ( A)A )实参与其对应形参各占独立的存储单元B)实参与其对应形参共占同一个存储单元C)只有实参与其对应形参同名时才共占同一存储单元D)形参就是一种虚拟的参数 ,不占存储单元17.若用数组名作为函数调用的实参,则实际传递给形参的就是( A)A) 数组首地址B)数组首元素C)数组全部元素D) 数组元素个数18.C 语言中 ,函数形式参数的默认存储类别就是( B)A)extern

9、B)autoC)registerD)static19.下面的程序运行后的输出结果就是( A)int x=100;main( )void myfun(int *p)int i,x=*p;myfun(&x);for(i=1;i<=10;i+)x+;cout<<x<<endl;(A)100(B)110(C)0(D)随机值20.设有结构体数组及指针的定义如下,其下列引用非法的就是 ( D)struct studentint num ;float score ;stu3=101,95,102,89,103,75 ,*p=stu;A)(p+)->num;B)(p

10、+1)->score; C)(*p) 、numD)p=&stu 、score二、程序填空题1.函数 DecTo2816(int d,int r)的功能就是将十进制整数d 转换为 r 进制数的形式 ,实现方法就是辗转除取余,将每次取得的余数转换为字符存入字符数组trans后反向输出。void DecTo2816(int d , int r) int res , i=0 ; char trans33='0' while(d) res=d%r;/取余数if(res<=9)transi+=0+res【 1】 ;/余数 <=9,如何存入字符?else0+res%

11、10【2】; / 若 r=16,1015 的余数如何转换?d=d/r;while(i>=0)put char(transi-)【 3】 ;/反向输出西华大学 C 语言程序设计复习题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)。整数表均采用单向链表存储。#include<stdio 、 h>typedef struct elem/链表结点类型intNode 的定义int v;/数据域 ,存储整数struct elem *

12、next;/指针域intNode;intNode *CreateList(intNode *Head , int n)/函数 :创建能存储n 个整数的链表intNode *pnew,*pend ; int i; /pnew 用于创建新结点 ,pend 为辅助指针 for(i=1;i<=n;i+) pnew=new intNode; cin>>pnew->v;if(Head=NULL) Head=pnew【 4】 ;/ 若当前头指针为空,应赋什么值else pend->next=pnew; / 新结点接入当前尾部结点之后 pend=pnew ; pend->n

13、ext=NULL; /pend 更新 ,当前尾结点指针域赋空return(Head);/返回链表头指针/ 以下 MergeList( ) 函数 ,归并 LA、 LB 到 LCintNode *MergeList(intNode *LA,intNode *LB,intNode *LC) intNode *pa=LA,*pb=LB,*pnew,*pend;while(pa&&pb【5】) /当 pa 与 pb 不为空时pnew=(intNode*)malloc(sizeof(intNode);/为 LC 创建新结点if(pa->v<=pb->v)/若结点 pa 的

14、 v 值小于或等于pb 结点的 v 值 pnew->v=pa->v;/LC 的新结点的 v 赋值为 pa 结点的 v 值pa=pa->next;/当前结点处理完毕 ,pa 指针下移elsepnew->v=pb->v【 6】 ;pb=pb->next【7】 ;if(LC=NULL)LC=pnew;/当前 LC 链表还为空else pend->next=pnew;pend=pnew ;pend->next=NULL;while(pa!=NULL)/如果 LA 比 LB 长,将剩余部分接入LC西华大学 C 语言程序设计复习题 pnew=new intN

15、ode; 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=pb->next【 9】;pend->next=pnew ; pend=pnew ; pend->next=NULL;Return LC【10】 ;/此函数应返回什么值void main(void) /以 LA=(3,5,8,11

16、) 与 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.以下函数功能就是使用对分法在递增排序的整型数组a 中查找指定元素SearchNum, 算法思想就是 : 取数组的中点下标 c,若 ac=SearchNum 则找到 ,若 SearchNum> ac, 则查找范围缩小为右半 ,否则缩小为左半 ,依此

17、循环直到查找范围不能再缩小为止。void BisectSearch(int a , int n)/n 为数组长度 ,即元素个数int s=0 , e=n-1 , c;/s 与 e 分别为查找范围的起点与终点下标,c 为中点int flag=0 , SearchNum; /flag作为就是否找到的标志,SearchNum 待查找cin>>SearchNum;if(a0=SearchNum)/判断数组首元素cout<<"Fount it: a0="<<SearchNum ; return;if(an-1=SearchNum)/判断数组尾元素c

18、out<<"Found it: a"<<n-1<<"="<<SearchNum ; return;while(el=(s+1)【13】 )/e=s+1 时 ,查找范围不能再缩小 c=(s+e)/2; /取数组的中点下标if(ac=SearchNum)flag=1【14】;break【15】 ;else if(ac<SearchNum) s=c【 16】 ;/更新 s 还就是 e?elsee=c【 17】;/更新 s 还就是 e西华大学 C 语言程序设计复习题if(flag=1)cout<<

19、"Fount it! a"<<c<<"="<<ac);else cout<<"Not found!"<<endl;4.下列函数 LocateSubString(char *s , char *t)的功能就是在字符串s 中定位字符串 t 并返回首次出现的位置(又称模式匹配 ,s 称目标串 ,t 称模式串 )。char *LocateSubString(char *s,char *t)int s_len=strlen(s) , t_len=strlen(t);/求串 s 与 t

20、的长度char *ps=s,*pt=t , *pa;/ps 与 pt 分别指向 s 与 t 的首字符 ,pa 为辅助指针int flag=0;/标志变量 ,找到 t 为 1,否则为 0while(ps<=s+s【18】 ) /ps 指针最多只能移动到什么地方? pa=ps ; pt=t;/为本轮匹配运算做准备工作while(*pt!='0')/pt 指针往下移动直到串尾if(*pa=*pt)/如果对应字符相等 ,如何处理?flag=1;pa+【 19】;pt+【20】;else/对应字符不相等 ,也就就是不匹配 flag=0 ; break; /不匹配 ,提前结束内层循环

21、/while 内层循环if(flag=1)break;/上面的内层循环结束,flag=1 说明找到了子串telse ps+;/本轮结束后 ,没找到子串t,ps 下移一个字符/while 外层循环if(flag=1) return ps;/当前 ps 即子串 t 首次出现的位置else return "0"/返回空串三、编制程序题1.编写一个函数 sort(int a,int n), 实现任意长度一维整型数组的元素排序 ,在 main( ) 中完成一维数组的定义与初始化 ,调用 sort( ) 函数后输出排序的结果。2.编程实现 :求 119999之间的 m,使满足 m 、m

22、2、m3 均为回文数。例如 121、1221、43634 等即为回文数。要求将求得的 m 存储到一个动态数组之中并输出。四、参考例程1、简单的学生成绩管理演示程序/文件包含及命名空间的使用语句,此处省略/结点类型定义typedef struct student int ID;西华大学 C 语言程序设计复习题char name16;float score;struct student *next;StuNode;/存储文件的函数 void Save *Head) int k=0; if(Head=NULL)cout<<" 链表为空 ,无法存储文件! "<&l

23、t;endl; system("pause");return;fstream outfile;out(" 、Stu、 dat",ios:out); StuNode *pt=Head;while(pt) k+; out(char*)pt,sizeof(StuNode); pt=pt->next;out();cout<<" 创建结点数 ="<<k<<endl;/读取文件的函数StuNode *ReadFile() int k=0;StuNode *Head=NULL,*pnew=NULL,*pai

24、d=NULL; ifstream infile;in(" 、Stu、dat",ios:in); if(in() cout<<" 文件不存在 ,打开失败! "<<endl; system("pause");return Head;while(!in() pnew=new StuNode; pnew->next=NULL;西华大学 C 语言程序设计复习题in(char*)pnew,sizeof(StuNode);if(in()<0) delete pnew; break;k+;if(Head=NULL)

25、 Head=pnew;paid=pnew; paid->next=NULL;else paid->next=pnew; paid=pnew; paid->next=NULL;/while, 读文件结束 in();cout<<" 读取结点数 ="<<k<<endl; return Head;/创建学生信息链表的函数StuNode *CreateList(StuNode *Head)StuNode *pnew,*paid,*ps,*pe;cout<<" 开始创建学生链表 ,输入学号为 0 或负则停止 :

26、"<<endl;for(;) pnew=new StuNode; pnew->next=NULL; cout<<" 学号 :" cin>>pnew->ID; if(pnew->ID<=0) delete pnew; break;cout<<" 姓名 :" fflush(stdin);cin 、getline(pnew->name,15);西华大学 C 语言程序设计复习题cout<<" 成绩 :" cin>>pnew->

27、score; if(Head=NULL) Head=pnew; pnew->next=NULL; paid=pnew;else if(pnew->ID<=Head->ID) 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-&g

28、t;next;ps->next=pnew; pnew->next=pe;return Head;/输出链表的函数void PrintList(StuNode *Head)(省略 )/主函数 void main( ) StuNode *Head=NULL; Head=CreateList(Head); Save); Head=ReadFile();西华大学 C 语言程序设计复习题PrintList(Head);system("pause");一、 选择题参考答案15:BCDDC610:AABBC1115: BDADC1620: AABAD二、 程序填空题参考答案【

29、 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+卫生管理制度1总则1.1为了加强公司的环境卫生管理,创造一个整洁、文明、温馨的购物、办公环境,根据公共场所卫生管理条例的要求,特制定本制度。1.2集团公司的卫生管理部门设在企管部,并负责将集团公司的卫生区域详细划分到各部室,各分公司所辖区域卫生由分公司客服部负责划分,确保无遗漏。2卫生标准2.1室内卫生标准2.1.1地面、墙面:无灰尘、无纸屑、无痰迹、无泡泡糖等粘合物、无积水,墙角无灰吊、无蜘蛛网。2.1.2门、窗、玻璃、镜子、柱子、电梯、楼梯、灯具等,做到明亮、无灰尘、无污迹、无粘合物,特别是玻璃,要求两面明亮。2.1.3柜台、货架:清

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论