江南大学《C语言程序设计》第三阶段练习题_第1页
江南大学《C语言程序设计》第三阶段练习题_第2页
江南大学《C语言程序设计》第三阶段练习题_第3页
江南大学《C语言程序设计》第三阶段练习题_第4页
江南大学《C语言程序设计》第三阶段练习题_第5页
已阅读5页,还剩1页未读 继续免费阅读

下载本文档

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

文档简介

PAGEPAGE6江南大学《C语言程序设计》第三阶段练习题一、单项选择题(本题共20小题,每小题2分,共40分。)1、设有定义:inta,*pA=&a;以下scanf语句中能正确为变量a读入数据的是(A)。A、scanf(“%d”,pA);B、scanf(“%d”,A);C、scanf(“%d”,&pA); D、scanf(“%d”,*pA);2、若有语句int*point,a=4;和point=&a;下面均代表地址的一组选项是(D)。A、a,point,*&a B、&*a,&a,*point C、*&point,*point,&a D、&a,&*point,piont3、有以下程序main(){char*p[10]={“abc”,”aabdfg”,”dcdbe”,”abbd”,”cd”};printf(“%d\n”,strlen(p[4]));}执行后输出结果是(A)。A、2 B、3 C、4 D、54、C语言结构体类型变量在程序执行期间(A)。A、所有成员一直驻留在内存中B、只有一个成员驻留在内存中C、部分成员驻留在内存中D、没有成员驻留在内存中5、以下对C语言中共用体类型数据的叙述(C)的叙述是正确的。。A、可以对共有变量名直接赋值B、一个共用体变量中可以同时存放其所有成员C、一个共有体变量中不能同时存放其所有成员D、共用体类型定义中不能出现结构体类型的成员6、有以下程序main(){ char str[]="xyz",*ps=str;while(*ps)ps++;for(ps--;ps-str>=0;ps--) puts(ps);}执行后的输出结果是(C)。A、yz B、z C、z D、xxyz yz yz xyxyz xyz7、设有如下定义structss{ char name[10]; int age; char sex;}std[3],*p=std;下面各输入语句中错误的是(B)。A、scanf("%d",&(*p).age); B、scanf("%s",&);C、scanf("%c",&std[0].sex) D、scanf("%c",&(p->sex));8、以下叙述中不正确的是(D)。A、C语言中的文本文件以ASCⅡ码形式存储数据B、C语言中对二进制文件的访问速度比文本文件快C、C语言中,随机读写方式不适用于文本文件D、C语言中,顺序读写方式不适用于二进制文件9、如果希望向文本文件末尾添加数据,则应以(C)方式打开文件。A、"r" B、"w" C、"a" D、"ab"10.设一整型(int)变量占用2个字节则下述共同体变量x所占用内存字节数为(A)。unionexp{inti;floatj;doublek;}x;A、14个B、7个C、8个D、随机而定11、对于基类型相同的指针变量,不能进行(A)运算。A、+B、-C、=D、==12、阅读下面程序,并给出结果(B)。main(){unionEXAMPLE{struct{intx;inty;}in;inta,b;}e;e.a=1;e.b=2;e.in.x=e.a*e.b;e.in.y=e.a+e.b;printf("%d%d",e.in.x,e.in.y);}A、38B、48C、47D、2513、以下函数的功能是(D)。fun(char*a,char*b){while((*a!='\0')&&(*b!='\0')&&(*a==*b)){a++;b++;}return(*a-*b);}A、计算a和b所指字符串的长度之差 B、将b所指字符串连接到a所指字符串中C、将b所指字符串连接到a所指字符串后面 D、比较a和b所指字符串的大小14、运行下列程序后的输出结果是(B)。main(){chars[]="Yes\n/No",*ps=s;puts(ps+4);*(ps+4)=0;puts(s);}A、n/No B、/No C、n/NO D、Yes Yes\ Yes /NoYes15、下面正确调用形式是(D)。

A、fscanf(文件指针,格式字符串,输出表列);B、fscanf(格式字符串,文件指针,输出表列);C、fscanf(格式字符串,输出表列,文件指针);D、fscanf(文件指针,格式字符串,输入表列);16、若fp是指向某文件的指针,且已读到此文件末尾,则库函数feof(fp)的返回值是(C)。A、EOF B、0 C、非零值 D、NULL17、若有定义:inta[3][4];则对该数组的i行j列元素值的正确引用为(C)。A、*(*(a+i)+j)B、(a+i)[j]C、*(a+i+j)D、*(a+i)+j18、.对于基类型相同的指针变量,不能进行(A)运算。A、+B、-C、=D、==19、函数AAA(s,t)char*s,*t;{while(*t++);t--;while(*t++=*s++);}的功能是(C)。A、求串的长度B、比较两个串的大小C、将串s复制到串t中D、将串s连接到串t中20、写出下列语句执行结果(A)。inta,b,c,d=4,m=6,n=8;int*p1=&d,*p2=&m,*p3;a=p1==&d;b=3*(-*p1)/(*p2)+7;c=*(p3=&n)=*p1*(*p2);printf("%d,%d,%d",a,b,c);A、1,5,24B、4,5,23C、1,2,22D、5,5,14二、填空题(本题共6小题,每空2分,共30分)1、若有定义语句“staticcharstr[4][20]={“thank”,“you”,“very”,“much!”};”则str数组中存储‘\0’的数组元素有4个。2、设有如下说明语句:enumweek{sun,mon,tue=100,wed,thu,fri,sat};则元素sun对应的实际值为0、wed对应的实际值为3。3、下面的程序将D盘上的文件abc.txt的内容显示在屏幕上,请填空。#include"stdio.h"main(){ FILE*fp;charc; if((fp=fopen("test.txt","r"))==NULL) { printf("cannotopenfile!\n"); exit(0); } while((!feof(f))!=EOF) putchar(c); fclose(f);}4、运行下列程序后,第一行输出内容fghinamee,第二行输出内容amee。main(){chara[2][5]={"fghi","name"};char*p,*s;intj;p=a[0];s=a[1];while(*p)p++;while(*s)*p++=*s++;for(j=0;j<2;j++)printf("%s\n",a[j]);}5、输入一个不包含空格的字符串,判断输入的字符串是否为回文,回文是相对中心左右对称的字符串,如:“abcba”和“abddba”是回文,而字符串“abcAa”不是回文。

#include”stdio.h”intf(char*p){char*p1,*p2;p1=p2=p;while(*p2++);p2++;p2--;while(p1<p2){if(*p1!=*p2)return(0);p1++;p2--;}return1;}main(){chars[200];printf(“输入一个字符串:”);scanf(“%s”,s);if(f(s))printf(“字符串:%s是回文!\n”,s);elseprintf(“字符串:%s不是回文!\n”,s);}6、运行程序后输出的第一行内容是1,1、第二行内容是4,1、最后一行内容是x=10。fun(intn,int*s){intf1,f2;if(n==1||n==2)*s=1;else{fun(n-1,&f1);fun(n-2,&f2);*s=2*f1+f2+1;printf(“\n%d,%d“,f1,f2);}}main() {intx; fun(4,&x);printf(“\nx=%d”,x);}三、编程题(本题共2小题,每小题15分,共30分)1、某班有10个学生,每个学生包姓名和3门课的成绩,编写一个程序,从键盘上输入每个学生的姓名和各门课的成绩,同时输出平均成绩在85分以上的学生的姓名、全部成绩和平均成绩解:voidmain(){structstudentstu[10];inti,j;floatdscore[10];printf("请输入是个学生\n");for(i=0;i<10;i++)//学生有10人,这里要循环到10{scanf("%d%s",&stu[i].num,&stu[i].name);for(j=0;j<10;j++)scanf("%f",&stu[i].score[j]);dscore[i]=(stu[i].score[0]+stu[i].score[1]+stu[i].score[2])/3;//数组下标从0开始,0、1、2if(dscore[i]>85){printf("平均成绩在85分以上的学生姓名为%s,全部成绩%f%f%f,平均成绩%f\n",&stu[i].name,stu[i].score[0],stu[i].score[1],stu[i].score[2],dscore[i]);}}}2、(设有一数列,包含10个数,要求:a.编写函数,采用冒泡排序法对之按照升序进行排列;b.编写函数,能够将从指定位置n开始的m个数按逆序重新排列并输出新的完整数列。(例如:原数列为2,4,6,8,10,12,14,16,18,20,若要求把从第2个数开始的5个数按逆序重新排列,则得到新数列为2,12,10,8,6,4,14,16,18,20。)解:#include<stdio.h>void

温馨提示

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

评论

0/150

提交评论