return y;} main()
{ int a=7,b=8,*p,*q,*r; p=&a; q=&b; r=f(p,q);
printf(\ 程序执行后输出结果是
A) 7,8,8 B) 7,8,7 C) 8,7,7 D) 8,7,8 20.以下正确的说法是_______
A) 定义函数时,形参的类型说明可以放在函数体内 B) return后边的值不能为表达式
C) 如果函数值的类型与返回值类型不一致,以函数值类型为准
D) 如果形参与实参的类型不一致,以实参类型为准 答案:ABACB ADABD BCBCC ABDBC
结构 共用 枚举
1.当说明一个结构体变量时系统分配给它的内存是( )
A)各成员所需内存的总和 B)结构中第一个成员所需内存容量 C)成员中占内存量最大者所需的容量 D)结构中最后一个成员所需内存容量 [A] [B] [C] [D]
2.当说明一个联合体变量时系统分配给它的内存是
A)各成员所需内存的总和 B)结构中第一个成员所需内存容量 C)成员中占内存量最大者所需的容量 D)结构中最后一个成员所需内存容量
3.设有定义语句struct {int x ;int y;} d[2]={{1,3},{2,7}};,则printf(\的值为( )
A)0 B)1 C)3 D)6
4.设有定义语句\team {my,your=4,his,her=his+10}; 则printf(\值为( )
A)0,1,2,3 B)0,4,0,10 C)0,4,5,15 D)1,4,5,15 5.以下对枚举类型名的定义中正确的是( )
A)enum a ={one,two,three}; B)enum a{ a1,a2,a3};
C)enum a ={'1','2','3'}; D)enum a{\ 6.若有如下定义
typedef union {long x[2];int y[4];char z[8];} MYTYPE; MYTYPE them;
则printf(\的输出是( ) A)32 B)16 C)40 D)24 7.设有以下说明和定义:
typedef union {long i;int k[5];char c;} DATE; struct date {int cat; DATE cow;double dog;} too; DATE max;
则下列语句printf(\的执行结果是( ) A)52 B)30 C)18 D)8
8.根据下面的定义,能打印字母M的语句是( )
struct person {char name[9];int age ;};
struct person c[10]={\ A)printf(\ B)printf(\ C)printf(\ D)printf(\ 9.设有如下定义,则对data中的a成员的正确引用是( ) struct sk {int a ;float b;}data,*p=&data;
A)(*p).data.a B)(*p).a C)p->data.a D)p.data.a 10.设有以下说明的语句 sturct stu {
int a; float b; } stutype;
则下面的叙述不正确的是( ) A)struct 是结构体的类型的关键字 B)struct stu是用户定义的结构体类型 C)stutype是用户定义的结构体类型名 D)a和b都是结构体成员名
11.以下scanf函数调用语句中对结构体变量成员的的不正确引用是( struct pupil {
char name[20]; int age; int sex; }pup[5],*p; p=pup;
A)scanf(\ B)scanf(\ C)scanf(\ D)scanf(\ 12.下面程序的输出结果是( ) #include \ main() {
union {
int a[2]; long b; char c[4]; }s;
s.a[0]=0x39; s.a[1]=0x38;
printf(\ printf(\ }
A)390038,39 B)39,71 C)3938,38 D)3839,39
)
13.下面对typedef的叙述中不正确的是( )
A)用typedef可以定义各种类型名,但不能用来定义变量 B)用typedef可以增加新类型
C)用typedef只是将已存在的类型用一个新的标识符来代表 D)使用typedef有利于程序的通用和移植 [A] [B] [C] [D] 14.以下程序的运行结果是( ) #include \ main() {
int j; union {
int a; long b; char c; }m;
m.b=0x12345678;
printf(\ }
A)1234,12 B)12345678,78 C)12345678,12 D)0,5678 15.设有如下定义:(本题选做) struct sk {
int n; float x; }data,*p;
若要使p指向data中的n域,正确的赋值语句是( ) A)p=&data.n; B)*p=data.n;
C)p=(struct sk *)&data.n D)p=(struct sk *)data.n 答案:ACDCB BADBC DBBBC
C语言实验参考答案
实验一
5、输入并运行自已编写的程序(教材第一章P14 三 编程题)。
实验二
1、编写一个程序,从键盘接收3个实数(分别为10.0、20.0、5.0),输出这3个数的和s、乘积t和平均值a。
#include
{float x,y,z,s,t,a; printf(“x,y,z=”);
scanf(“%f,%f,%f”,&x,&y,&z); s=x+y+z; t=x*y*z; a=s/3;
printf(“s=%f,t=%f,a=%f\\n”,s,t,a); }
2、编程。要求用户输入两个整数a、b(分别为20、10), 读取用户从键盘输入的值,然后:
1)用整数输出这两个数的和、差;
2)用长整型输出这两个数的积,用float输出商;
3)用整数输出这两个数的余数,用float输出平均值。 #include
{int a,b,he,cha,yu; long ji;
float shang,aver; printf(“a,b=”);
scanf(“%d,%d”,&a,&b); he=a+b; cha=a-b; ji=(long)a*b; shang=1.0*a/b; yu=a%b;
aver=(a+b)/2.0;
printf(“a+b=%d,a-b=%d,a*b=%ld\\n”,he,cha,ji);
printf(“a/b=%f,a%%b=%d,aver=%f\\n”,shang,yu,aver); }
3. 再次运行程序第2题中的程序,使整数a、b的值分别为10、20,分析程序运行结果,并给出说明。
程序同上。
实验三
1、编写一个程序,从键盘接收一个一位的整型数,经转换,用字符函数putchar输出。例如,输入整数5,程序运行后输出字符5。
#include
printf(“a=”); scanf(“%d”,&a); c=a+48; putchar(c); }
2、编程。输入半径,计算球体表面积(S?4??r)和球体积 (
2V?4??r33)。
#include
#define PI 3.1415926 main() {float r,s,v; printf(“r=”); scanf(“%f”,&r); s=4*PI*r*r;
v=4/3.0*PI*r*r*r;
printf(“s=%f,v=%f\\n”,s,v); }
3、编写一个程序,要求通过键盘给6个变量赋值,然后将变量的值在屏幕上打印输出。这六个变量的值分别为:10,-10,40000,a,3.14,hello。
#include
char d,ch[6]; float e;
scanf(“%d%d%ld%c%f%s”,&a,&b,&c,&d,&e,ch); printf(“%d,%d,%ld,%c,%f,%s\\n”,a,b,c,d,e,ch); }
实验四
1. 编程实现:键盘输入三个整数,分别存放到变量a,b,c中,输出其中的最小值(要求不改变a、b、c的值)。
#include
{int a,b,c,min;
printf(\请输入三个整数a,b,c=\scanf (\min=a>b?(b>c?c:b):(a>c?c:a); printf(\}