14.以下程序的执行结果是 。
#include
int fun(int x,int y,int *cp,int *dp) { *cp=x+y; *dp=x-y; }
void main(void) { int a, b, c, d; a=30; b=50; fun(a,b,&c,&d);
printf(\}
15.下列程序的输出结果 。
#include
{char b[]=\char *chp=&b[7]; while(--chp>&b[0]) putchar(*chp); putchar('\\n'); }
16. 阅读程序
main()
{char str1[]=\,str2[10]; char *p1=str1,*p2=str2; scanf(\printf(\printf(\}
运行上面的程序,输入字符串PEOPLE AND COMPUTER,程序的输出结果是 。
17. 下列程序的运行结果是 。 main() { int i,*p;
static int a[4]={1,2,3,4}; p=a;
for(i=0;i<3;i++)
printf(\ }
18.以下程序的运行结果是 。 main() { int i,*p;
static int a[4]={1,2,3,4}; p=a;
for(i=0;i<3;i++)
printf(\ }
第八
一、选择题
1.在说明一个结构体变量时系统分配给它的存储空间是 。
A) 该结构体中第一个成员所需存储空间 B) 该结构体中最后一个成员所需存储空间
C) 该结构体中占用最大存储空间的成员所需存储空间 D) 该结构体中所有成员所需存储空间的总和
2.若有以下说明和语句: struct worker
{ int no; char ﹡name; }work, ﹡p=&work; 则以下引用方式不正确的是 。
A) work.no B) (﹡p).no C) p->no D)work->no 3.有如下定义:
struct date { int year, month, day; };
struct worklist { char name[20]; char sex; struct date birthday; }person;
对结构体变量person的出生年份进行赋值时,下面正确的赋值语句是 。 A) year=1958 B) birthday.year=1958 C) person.birthday.year=1958 D) person.year=1958 4.以下对结构体类型变量的定义中不正确的是 。 A) #define STUDENT struct student B) struct student
STUDENT { int num; { int num; float age; float age; }std1; }std1;
C) struct D) struct { int num; { int num;
float age; float age; } student; }std1; struct student std1; 5.设有以下说明语句
struct stu
{ int a; float b; }stutype;
则下面的叙述不正确的是 。 A) struct是结构体类型的关键字
B) struct stu是用户定义的结构体类型 C) stutype是用户定义的结构体类型名 D) a和b都是结构体成员名
6.C语言结构体类型变量在程序执行期间 。 A) 所有成员一直驻留在内存中 B) 只有一个成员主留在内存中
C) 部分成员驻留在内存中 D) 没有成员驻留在内存中
7.以下程序的运行结果是 。 # include
{ struct date
{ int year, month, day; }today; printf(“%d\\n”,sizeof(struct date)); }
A) 6 B) 8 C) 10 D)12 8.有如下定义
struct person{char name[9]; int age;};
struct person class[10]={“Johu”, 17, “Paul”, 19 ,“Mary”, 18, “Adam “,16}; 根据上述定义,能输出字母M的语句是 。 A) printf(“%c\\n”,class[3].name); B) pfintf(“%c\\n”,class[3].name[1]); C) printf(“%c\\n”,class[2].name[1]); D) printf(“%c\\n”,class[2].name[0]); 9.设有如下定义
struct ss
{ char name[10]; int age; char sex;
} std[3],* p=std;
下面各输入语句中错误的是 。 A) scanf(\B) scanf(\C) scanf(\D) scanf(\
10.设有以下说明语句,则下面的叙述中不正确的是 。
struct ex {
int x ; float y; char z ; } example;
A) struct结构体类型的关键字 B) example是结构体类型名 C) x,y,z都是结构体成员名 D) struct ex是结构体类型 14.以下程序的输出结果是 。
amovep(int *p, int a[3][3],int n) { int i, j;
for( i=0;i for(j=0;j main() { int *p,a[3][3]={{1,3,5},{2,4,6}}; p=(int *)malloc(100); amovep(p,a,3); printf(\} A) 56 B) 25 C) 34 D) 程序错误 15.以下程序的输出结果是 。 struct HAR { int x, y; struct HAR *p;} h[2]; main() { h[0].x=1;h[0].y=2; h[1].x=3;h[1].y=4; h[0].p=&h[1].x; h[1].p=&h[0].x; printf(\} A) 12 B) 23 C) 14 D) 32 四、读程序写结果题 1.以下程序的运行结果是 。 struct n {int x; char c; }; main( ) { struct n a={10, ?x?}; func(a); printf ( “%d,%c”, a.x, a.c); } func(struct n b) {b.x=20; b.c=?y?; } 2.以下程序的运行结果是 。 main( ) { struct EXAMPLE { struct {int x; int y; }in int a; int 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); } 3.以下程序的运行结果是 。 main( ) { static struct s1 {char c[4], *s; }s1={“abc”,”def”}; static struct s2 {char *cp; struct s1 ss1; }s2={“ghi”, {“jkl”, “mno”}}; printf(“%c,%c\\n”, s1.c[0], *s1.s); printf(“%s,%s\\n”, s1.c, s1.s); printf(“%s,%s\\n”, s2.cp, s2.ss1.s); printf(“%s,%s\\n”, ++s2.cp, ++s2.ss1.s); } 4.以下程序的运行结果是 。 struct s{ int a; float b; char *c; } main( ) {static struct s x={19,83.5,”zhang”}; struct s *px=&x; printf(“%d %.1f %s\\n”, x.a, x.b,x.c); printf(“%d %.1f %s\\n”, px->a, (*px).b,px->c); printf(“%c %s\\n”, *px->c-1, &px->c[1]); } 5.以下程序的运行结果是 。 struct stru {int x; char c; }; main( ) { struct stru a={10, ?x?},*p=&a; func (p); printf ( “%d,%c”, a.x, a.c); } func (struct stru *b) {b->x=20; b->c=?y?; } 6.以下程序的执行结果是 。 #include struct stu { int num; char name[10]; int age; }; void fun(struct stu *p) { printf(\ } void main(void) { struct stu students[3]={ {9801,\{9803,\ fun(students+2); } {9802,\ 第九 一、选择题 1.当已存在一个abc.txt文件时,执行函数fopen (“abc.txt”, “r+”)的功能是 。 A) 打开abc.txt文件,清除原有的内容 B) 打开abc.txt文件,只能写入新的内容 c)打开abc.txt文件,只能读取原有内容 d)打开abc.txt文件,可以读取和写入新的内容 2.若用fopen( )函数打开一个新的二进制文件,该文件可以读也可以写,则文件打开模式是 。 A)“ab+” B) “wb+” C)“rb+” D)“ab” 4.fread(buf,64,2,fp)的功能是 。 A) 从fp文件流中读出整数64,并存放在buf中; B) 从fp文件流中读出整数64和2,并存放在buf中; C) 从fp文件流中读出64个字节的字符,并存放在buf中; D)从fp文件流中读出2个64个字节的字符,并存放在buf中; 5.以下程序的功能是 。 main( ) {FILE *fp; char str[ ]=”HELLO”; fp=fopen(“PRN”,”w”); fpus(str,fp);fclose(fp); } A) 在屏幕上显示“HELLO” B) 把“HELLO”存入PRN文件中 C)在打印机上打印出“HELLO” d)以上都不对 6.若fp是指向某文件的指针,且已读到此文件末尾,则库函数feof(fp)的返回值 是 。 A) EOF B) 0 C) 非零值 D) NULL 7.以下叙述中不正确的是 。 A) C语言中的文本文件以ASCII码形式存储数据 B) C语言中对二进制位的访问速度比文本文件快 C) C语言中,随机读写方式不使用于文本文件 D) C语言中,顺序读写方式不使用于二进制文件 8.以下程序企图把从终端输入的字符输出到名为abc.txt的文件中,直到从终端读入字符 #号时结束输入和输出操作,但程序有错。 #include { FILE *fout; char ch; fout=fopen('abc.txt','w'); ch=fgetc(stdin); while(ch!='#') { fputc(ch,fout); ch =fgetc(stdin); } fclose(fout); } 出错的原因是 。 A) 函数fopen调用形式有误 B) 输入文件没有关闭 C) 函数fgetc调用形式有误 D) 文件指针stdin没有定义 9、若fp为文件指针,且文件已正确打开,i为long型变量,以下程序段的输出结果 是 。 fseek(fp, 0, SEEK_END); i=ftell(fp); printf(\ A) –1 B) fp所指文件的长度,以字节为单位 C) 0 D) 2