C语言实训习题
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);
for(j=0;p[i][j]>′\0′;j+=2)
s=10*s+p[i][j]-′0′;
printf("%d\n",s);}
该程序的输出结果是 (
)
A)69825 B)63825 C)6385 D)693825
14.有以下程序 #include <stdio.h> #include <string.h>
A)3e,6
B)62,5
C)56,5 D)3E,6
17 有以下程序 #include <stdio.h> #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 %d\n",i1,i2); }
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;
C. printf("%c",st[2].name[1]);
D. printf("%c",st[2].name[0]);
3. 需要以写模式打开当前目录下一个名为 myfile.txt 的文本文件,下列打开文件正确的
选项是:
。
A. fopen("myfile.txt","r");
B. fopen("myfile.txt","w");
int i;
strcpy(,);
a.sex=b.sex;
for(i=0;i<2;i++) a.score[i]=b.score[i];
}
main()
{STU c={"Qian",'f',95.0,92.0};
f(c);
printf("%s,%c,%2.0f,%2.0f\n",,c.sex,c.score[0],c.score[1]);
实验
一 单选题
1. 设有下列函数原型和变量定义语句,则合法的函数调用语句是:
。
int func( int a[], int n );
int a[10], n, x;
A. func( a, n ) = x;
B. x = func( a, n );
C. x = func( a[], n );
D. x = func( a[10], n );
}
程序的运行结果是 (
)
A)Qian,f,95,92
B)Qian,m,85,90
C)Zhao,f,95,92
D)Zhao,m,85,90
二、阅读并调试程序 1. 以下程序的输出结果是 ( ) 。 main() { char s[]="ABCD", *p;
for(p=s+1; p<s+4; p++)printf ("%s\n",p);}
三、程序填空 要求:依据题目要求,分析已给出的语句,填写空白。但是不要增行或删行,
改动程序的结构。 1.以下程序中函数 fun 的功能是:统计 person 所指结构体数组中所有性别(sex)为 M
的记录的个数,存入变量 n 中,并作为函数值返回。请填空。
#include <stdio.h>
#define N 3
A)ABCDDEFEDBD
B)abcDDfefDbD
C)abcAAfefAbA D)Abcddfefdbd
13.有如下程序
main()
{ char ch[2][5]={"6937","8254"},*p[2];
int i,j,s=0;
for(i=0;i<2;i++)p[i]=ch[i];
for(i=0;i<2;i++)
void swap( int *p, int *q ); int x, y; 则合法的函数调用语句是:_______ 。 A. swap( x, y ); B. swap( *x, *y );
C. swap( &x, &y ); D. swap( p, q );
9. 若有结构体定义及初始化语句: struct node
for(i=0;i<n-1;i++) for(j=i+1;j<n;j++)
if(strlen(s[i])>strlen(s[j])) {t=s[i];s[i]=s[j];s[j]=t;} } main()
fun(ss,5); }
printf("%s,%s\n",ss[0],ss[4]);
程序的运行结果是 (
A)6 B)7 C)8 D)9
16 阅读下列程序,则执行后的结果为 (
)
#include "stdio.h"
main()
{ int c[][4]={1,2,3,4,5,6,7,34,213,56,62,3,23,12,34,56};
printf("%x,%x\n",c[2][2],*(*(c+1)+1));}
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. 若有函数原型和变量定义语句:
{ int num; float score;
} stu[2]={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( &n, sizeof(int), 1, fp ); D. fclose(fp);
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;
)
A)xy,aaaacc B)aaaacc,xy C)bcc,aabcc
D)aabcc,bcc
15 下列程序执行后的输出结果是 (
)
void func(int *a,int b[])
{ b[0]=*a+6; }
main()
{ int a,b[5];
a=0; b[0]=3;
func(&a,b); printf("%d\n",b[0]);}
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;
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; __________。