C语言实训习题.pdf_第1页
C语言实训习题.pdf_第2页
C语言实训习题.pdf_第3页
C语言实训习题.pdf_第4页
C语言实训习题.pdf_第5页
已阅读5页,还剩5页未读 继续免费阅读

下载本文档

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

文档简介

实验实验 一一 单选题单选题 1. 设有下列函数原型和变量定义语句,则合法的函数调用语句是: 。 int func( int a, int n ); int a10, n, x; A. func( a, n ) = x; B. x = func( a, n ); C. x = func( a, n ); D. x = func( a10, n ); 2. 若有以下定义,输出字母 M 的语句是: 。 struct person char name9; int age; ; struct person st10 = “john“,17,“paul“,19,“Mary“,18; A. printf(“%c“,); B. printf(“%c“,1); C. printf(“%c“,1); D. printf(“%c“,0); 3. 需要以写模式打开当前目录下一个名为 myfile.txt 的文本文件,下列打开文件正确的 选项是: 。 A. fopen(“myfile.txt“,“r“); B. fopen(“myfile.txt“,“w“); C. fopen(“myfile.txt“,“rb“); D. fopen(“myfile.txt“,“wb“); 4. 假定建立了以下链表结构:struct node char id ; struct node *next; *head,*p; 如下图所示: 指针p指向一个新结点, 将新结点插入到链表成为头结点的两条C语言语句是 。 A. head=p-next; p=head; B. p-data=head; head=p; C. head=p-data; p=head; D. p-next=head; head=p; 5. 若建立了以下链表结构,如图所示。指针p指向如图所示的结点,t为与data同类型的数 据变量,则交换p所指向的结点的数据和该结点的下一个结点的数据的语句为:t=p-data; _。 A. p-next-data = p-data; p-data =t; B. p-data = p-next-data; p-next-data =t; C. p-data = t; p-next-data = p-data; D. p-next-data = t; p-data = p-next-data; 6假定建立了下图所示的链表结构,指针p指向如图所示的结点,已定义q是与p相同类型的 指针变量,则将p所指结点的下一个结点从链表中删除的语句是 _。 A. q=p-next; p-next=q-next; free(q); B. q=p-next; free(q); p-next=p-next-next; C. p-next=p-next-next; q=p-next; free(q); D. p-next=q-next; q=p-next; free(q); 7. 设有变量定义:char st=“computer“; int i=0; char *s=st; 当执行完语句:while(*s+!= u) i+; 之后,则_。 A. i 的值为 5,*s 的值为t B. i 的值为 5,*s 的值为u C. i 的值为 4,*s 的值为t D. i 的值为 4,*s 的值为u 8. 若有函数原型和变量定义语句: void swap( int *p, int *q ); int x, y; 则合法的函数调用语句是:_ 。 A. swap( x, y ); B. swap( *x, *y ); C. swap( D. swap( p, q ); 9.9. 若有结构体定义及初始化语句: struct node int num; float score; stu2=101,91.5,102,92.5,*p=stu; 则表达式 p-score 的结果是:_ 。 A. 101 B. 91.5 C. 102 D. 92.5 10. 设有定义 FILE *fp;将整数 n 以文本方式写到 fp 文件的语句:_。 A. fp = fopen( “file.txt“, “w“ ); B. fprintf( fp, “%d“, n ); C. fwrite( D. fclose(fp); 11.11.假定建立了如下图所示的链表结构,指针p指向如图所示的结点,则将r所指结点直接插 入p所指结点后的语句是:_。 A. r-data=p-data; p-data=r; B. p-data=r; r-next=p-next; C. r-next= p-next; p-next=r; D. p-next=r; r-next=p-next; 12有以下程序 void ss(char *s,char t) while(*s) if(*s=t)*s=t-a+A; s+; main() char str1100=“abcddfefdbd“,c=d; ss(str1,c); printf(“%sn“,str1); 程序运行后的输出结果是 ( ) A)ABCDDEFEDBD B)abcDDfefDbD C)abcAAfefAbA D)Abcddfefdbd 13.13.有如下程序 main() char ch25=“6937“,“8254“,*p2; int i,j,s=0; for(i=0;i0;j+=2) s=10*s+pij-0; printf(“%dn“,s); 该程序的输出结果是 ( ) A)69825 B)63825 C)6385 D)693825 14.有以下程序 #include #include for(i=0;istrlen(sj) t=si;si=sj;sj=t; main() fun(ss,5); printf(“%s,%sn“,ss0,ss4); 程序的运行结果是 ( ) A)xy,aaaacc B)aaaacc,xy C)bcc,aabcc D)aabcc,bcc 1515 下列程序执行后的输出结果是 ( ) void func(int *a,int b) b0=*a+6; main() int a,b5; a=0; b0=3; func( printf(“%dn“,b0); A)6 B)7 C)8 D)9 1616 阅读下列程序,则执行后的结果为 ( ) #include “stdio.h“ main() int c4=1,2,3,4,5,6,7,34,213,56,62,3,23,12,34,56; printf(“%x,%xn“,c22,*(*(c+1)+1); A)3e,6 B)62,5 C)56,5 D)3E,6 1717 有以下程序 #include #define N 5 #define M N+1 #define f(x) (x*M) main() int i1,i2; i1=f(2); i2=f(1+1); printf(“%d %dn“,i1,i2); 程序的运行结果是( ) A)12 12 B)11 7 C)11 11 D)12 7 1818 下面程序段中,输出*的个数是 ( ) char *s=“ta018bc“; for(;*s!=0;s+)printf(“*“); A)9 B)5 C)6 D)7 1919 以下结构体类型说明和变量定义中正确的是 ( ) A)tupedef struct int n; char c;REC; REC t1,t2; B)tupedef struct int n; char c; REC t1,t2; C)tupedef struct REC; int n=0; char c=A;t1,t2; D)struct int n; char c;REC; REC t1,t2; 20 有以下程序 #include #include typedef struct char name9; char sex; float score2; STU; void f(STU a) STU b=“Zhao“,m,85.0,90.0; int i; strcpy(,); a.sex=b.sex; for(i=0;i void fun(float *p1,float *p2, float *s) s=(float *)calloc(1, sizeof(float); *s=*p1+*(p2+); main() float a2=1.1, 2.2, b2=10.0, 20.0, *s=a; fun (a, b, s); printf(“%fn”, *s); 3以下程序的输出结果是什么? #include struct stu int num; char name10; int age; ; void fun(struct stu *p) printf(“%sn”, (*p).name); main() struct stu students3=9801, “Zhang”, 20, 9802, “Wang”, 19, 9803, “Zhao”, 18; fun (students+2); 三三、程序填空程序填空 要求:依据题目要求,分析已给出的语句,填写空白。但是不要增行或删行, 改动程序的结构。 1.以下程序中函数fun的功能是:统计person所指结构体数组中所有性别(sex)为M 的记录的个数,存入变量 n 中,并作为函数值返回。请填空。 #include #define N 3 typedef struct int num; char nam10; char sex;SS; int fun(SS person) int I,n=0; for(I=0;I #define N 100 struct communication char name20; char address80; long int post_code; communN; main() int i; for(i=0; iaddress, ); print_record ( struct communication *p) printf(“Print a communication recordn”); printf(“Name: %sn”, p-name); printf(“Address: %sn”, p-address); printf(“Post_code: %ldn”, ); 3以下函数 creatlist 用来建立一个带头节点的单链表,新的结点总是插入在 链表的末尾。链表的头指针作为函数值返回,链表最后一个节点的 next 成员中 放入 NULL,作为链表结束标志。读入时字符以#表示输入结束(#不存入链表)。 请填空。 struct node char data; struct node * next; ; struct node * creatlist( ) struct node * h,* s,* r;char ch; h=(struct node *)malloc(sizeof(struct node); r=h; ch=getchar( ); while(ch!= #) s=(struct node *)malloc(sizeof(struct node); s-data= ; r-next=s; r=s; ch=getchar( ); r-next= ; return h; 四四、编写程序编写程序 1编写程序:把从键盘输入的字符存放到一个文件中,用字符作为

温馨提示

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

评论

0/150

提交评论