第十一章测试
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:1002,ChangRong,1202.0 B:1002,ZhangDa,1202.0 C:1001,ChangRong,1098.0 D:1001,ZhangDa,1098.0
答案:D
2.

设有定义:
struct  {char  mark[12]; int  num1; double  num2;}  t1,t2;
若变量均已正确赋初值,则以下语句中错误的是()


A:t2.num1=t1.num1; B:t2.mark=t1.mark; C:t2.num2=t1.num2; D:t1=t2; 3.

以下叙述中正确的是()


A:即使是同类型的结构体变量,也不能进行整体赋值 B:结构体数组名不能作为实参传给函数 C:结构体中可以含有指向本结构体的指针成员 D:结构体变量的地址不能作为实参传给函数 4.

设有以下程序段
struct person
{
    float  weight;    
    char  sex;    
    char  name[10];
} rec, *ptr;
ptr = &rec;
从键盘读入字符串给结构体变量recname成员,错误的输入语句是()


A:scanf("%s", rec.name); B:scanf("%s", rec->name); C:scanf("%s", (*ptr).name); D:scanf("%s", ptr->name); 5.

以下叙述中错误的是()


A:可以用typedef说明的新类型名来定义变量 B:typedef的作用是用一个新的标识符来代表已存在的类型名 C:typedef可以说明一种新的类型名 D:typedef说明的新类型名必须使用大写字母,否则会出编译错误 6.

有如下程序
#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:17  B:Li:20 C:Wang:19 D:Li:19 7.

有以下程序
#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 B:Zhao,m,290,Qian,f,350 C:Zhao,m,290,Zhao,m,290 D:Qian,f,350,Zhao,m,290

温馨提示支付 ¥4.99 元后可查看付费内容,请先翻页预览!
点赞(40) dxwkbang
返回
顶部