9.3.1 选择题选择题
2. 有以下程序输出结果是( )。
#include<stdio.h>
struct stu
{
int num;
char name[10];
int age;
};
void fun(struct stu *p)
{
printf("%s\n",(*p).name);
}
main()
{
struct stu students[3]= {{9801,"Zhang",20},{9802,"Wang",19},{9803,"Zhao",18}};
fun(students+2);
}
A.Zhang B.Zhao C.Wang D.18
4. 设有如下定义:
struct sk
{
int a;
float b;
} data,*p;
若有p=&data;则对data中的a 域的正确引用是( )。
A
6.根据下面的定义,能打出字母M的语句是( )。
struct person
{
char name[9];
int age;
}
struct person class[10]={ 〞John〞,17, 〞Paul〞,19, 〞Mary〞,18, 〞Adam〞,16};
A.printf(〞%c\n〞,class[3].name); B.printf(〞%c\n〞,class[3].name[1]);
C.printf(〞%c\n〞,class[2].name[1]); D.printf(〞%c\n〞,class[2].name[0];
7. 下列程序的执行结果为( )。
#include<stdio.h>
struct s1
{
char *s;
int i;
struct s1 *sip;
}
main()
{
static struct s1 a[]={{"abcd",1,a+1},{"efgh",2,a+2},{"ijkl",3,a}};
struct s1 *p=a;
int i=0;
printf("%s%s%s",a[0].s,p->s,a[2].sip->s);
printf("%d%d",i+2,--a[i].i);
printf("%c\n",++a[i].s[3]); //VC下运行,出现错误
}
Ac语言下载什么.abcd abcd abcd 2 0 e B.abcd efgh ijkl 2 0 e
C.abcd abcd ijkl 2 0 e D.abcd abcd abcd 2 1 e
8. 下面程序的输出结果为( )。
#include <stdio.h>
struct st
{
int x;
int *y;
} *p;
int dt[4]={10,20,30,40};
struct st aa[4]={50,&dt[0],60,&dt[1],70,&dt[2],80,&dt[3]};
main()
{
p=aa;
printf("%d\n",++p->x);
printf("%d\n",(++p)->x);
printf("%d\n",++(*p->y));
}
A.10 B.50 C. 51 D.60
20 60 60 70
20 21 21 31
9. 有以下程序
#include <stdio.h>
main()
{
struct STU
{
char name[9];
char sex;
double score[2];
};
struct STU a={“Zhao”,’m’,85.0,90.0},b={“Qian”,’f’,95.0,92.0};
b=a;
printf(“%s,%c,%2.0f,%2.0f\n”,b.name,b.sex,b.score[0],b.score[1]);
}
程序的运行结果是:( )。
A. Qian, f, 95, 92 B. Qian, m, 85, 90 C. Zhao, f, 95, 92 D. Zhao, m, 85, 90
10. 下面结构体的定义语句中,错误的是( )。
A. struct ord B. struct ord
{ {
int x; int x ;
int y; int y ;
int z; int z ;
}; }
struct ord a; struct ord a;
C. struct ord D. struct
{ {
int x; int x ;
int y; int y ;
int z; int z ;
} a; }a;
11. 有以下程序
#include <stdio.h>
#include<string.h>
struct A
{
int a;
char b[10];
double c;
};
struct A f(struct A t);
main()
{
struct A a={1001,"ZhangDa",1098.0};
a=f(a);
printf("%d,%s,%6.1f\n",a.a,a.b,a.c);
}
struct A f(struct A t)
{
t.a=1002;
strcpy(t.b,"ChangRong");
t.c=1202.0;
return t;
}
程序运行后的输出结果是( )。
A. 1001,ZhangDa,1098.0 B.1002,ZhangDa,1202.0
C. 1001,ChangRong,1098.0 D.1002,ChangRong,1202.0
12.下面程序的运行结果是( )。
#include <stdio.h>
struct STU
{
char name[10];
int num;
};
void f(char *name, int num)
{
struct STU s[2]={{"Sun",2044},{"Li",2045}};
num=s[0].num;
strcpy(name, s[0].name);
}
main()
{
struct STU s[2]={{"Yang",2041},{"Guo",2042}},*p;
p=&s[1];
f(p->name, p->num);
printf("%s %d\n", p->name, p->num);
}
A. Sun 2042 B. Sun 2044 C. Guo 2042 D. Yang 2041
13. 下面程序的运行结果是()。
#include <stdio.h>
#include <string.h>
struct STU
{
int num;
float score;
};
void f(struct STU p)
{
struct STU s[2]={{2044,550},{2045,537}};
p.num = s[1].num;
p.score = s[1].score;
}
main()
{
struct STU s[2]={{2041,703},{2042,580}};
f(s[0]);
printf("%d %3.0f\n", s[0].num, s[0].score);
}
A. 2045 537 B. 2044 550 C. 2042 580 D. 2041 703
14. 有以下程序:
#include <stdio.h>
struct st
{ int x, y; }data[2]={1,10,2,20};
main()
{
struct st *p=data;
printf("%d",p->y);
printf("%d\n",(++p)->x);
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论