第十一章测试1.
有以下程序
#include <stdio.h>
#include <string.h>
struct A
{ int a; char b[10]; double c;};
void f(struct A t);
main()
{ struct A a={1001,"ZhangDa",1098.0};
f(a);
printf("%d,%s,%6.1f", a.a,a.b,a.c);
}
void f(struct A t)
{ t.a=1002; strcpy(t.b,"ChangRong"); t.c=1202.0;}
程序运行后的输出结果是()
A:1001,ZhangDa,1098.0
答案:A
2.
设有定义:
struct {char mark[12]; int num1; double num2;} t1,t2;
若变量均已正确赋初值,则以下语句中错误的是()
A:t1=t2;
以下叙述中正确的是()
A:结构体数组名不能作为实参传给函数
设有以下程序段
struct person
{
float weight;
char sex;
char name[10];
} rec, *ptr;
ptr = &rec;
从键盘读入字符串给结构体变量rec的name成员,错误的输入语句是()
A:scanf("%s", rec.name);
以下叙述中错误的是()
A:typedef说明的新类型名必须使用大写字母,否则会出编译错误
有如下程序
#include <stdio.h>
struct person
{
char name[10];
int age;
}
main()
{
struct person room[4] = {{"Zhang", 19}, {"Li", 20}, {"Wang", 17}, {"Zhao", 18}};
printf("%s:%d", (room+2)->name, room->age);
}
程序运行后的输出结果是()
A:Wang:19
有以下程序
#include <stdio.h>
typedef struct stu {
char name[10];
char gender;
int score;
} STU;
void f(STU *a, STU *b)
{
*b = *a;
printf("%s,%c,%d,", b->name, b->gender, b->score);
}
main()
{
STU a={"Zhao", 'm', 290}, b={"Qian", 'f', 350};
f(&a,&b);
printf("%s,%c,%d", b.name, b.gender, b.score);
}
程序的运行结果是()
A:Qian,f,350,Qian,f,350