2.1程序输出 1、【单选题】#include
int main() { printf("12和15的最大公约数是:",15); return 0; } 程序的输出结果是? a、编译错误 b、12和15的最大公约数是: c、12和15的最大公约数是:3 d、12和15的最大公约数是:12 2、【判断题】printf("1 1=%d\n",1 1); 函数中,出现两次"1 1",其作用是一致的。 3、【简答题】四则运算。 编程输出数据23和9.85的和、差、积和商的值(输出格式可以自行设计)。 4、【简答题】银行存款本息的计算。 输入存款金额 money、存期 year 和年利率 rate,根据公式计算存款到期时的本息合计sum(税前),结果保留2位小数。 sum = money ( 1 rate)year 注:幂函数ax用库函数pow(a,x)。2.2程序输入 1、【单选题】int x,y; scanf("-%2s-",&x,&y); printf("%d",x y); 程序执行中,从键盘输入:123456789,则程序输出结果:() a、编译报错 b、4 c、68 d、1234 2、【单选题】int a,b; scanf("a=%d,%d",&a,&b); 正确的输入形式是:() a、a=3,b=4 b、3,4 c、3 4 d、a=3,45 3、【单选题】表达式: x=(6*7%8 9)/5 执行结束,x的值是:() a、1 b、2 c、3 d、4 4、【单选题】int a,b,c; 从键盘输入数据,正确的输入语句是:( ) a、scanf("%d%d%d", &a,&b,&c); b、scanf("%d%d%d", a, b, c); c、scanf("%f%f%f", &a, &b, &c); d、input a, b, c; 5、【单选题】下列说法正确的是:( ) a、在执行c程序时不是从main函数开始的 b、c程序书写格式严格限制,一行内必须写一个语句 c、c程序书写格式自由,一个语句可以分写在多行上 d、c程序书写格式严格限制,一行内必须写一个语句,并要有行号2.3章节测验 1、【单选题】在c语言中,字母a的ascii码是65,则语句char ch='a' 3; 执行后, ch的值为:( ) a、c b、d c、68 d、不能确定 2、【单选题】下列关于运算符优先级的描述,正确的是:( ) a、关系运算符< 算术运算符< 赋值运算符< 逻辑与运算符 b、逻辑运算符< 关系运算符< 算术运算符< 赋值运算符 c、赋值运算符< 逻辑与运算符< 关系运算符< 算术运算符 d、算术运算符< 关系运算符< 赋值运算符< 逻辑与运算符 3、【单选题】在c 语言程序中,两个int变量a、b均已赋值,下列不是算术表达式的是:( ) a、a b b、a%b c、a d、a>b 4、【单选题】以下叙述不正确的是:( ) a、c程序的基本组成单位是函数 b、在c程序中,注释说明只能位于一条语句的后面 c、一个c源程序可由一个或多个函数组成 d、一个c源程序必须包含一个main函数 5、【单选题】定义int a=5,b=4,c=3; 则下列描述正确的是:( ) a、关系表达式a>b的值为真,表达式的值为1 b、关系表达式a>b>c的值为真,表达式的值为1 c、关系表达式b c=a的值为假,表达式的值为0 d、关系表达式b<>c的值为真,表达式的值为13.1单分支结构 1、【单选题】程序段: int a=12; if(a=0) { a=18; a ; } 请问a变量的值为:( ) a、0 b、12 c、18 d、19 2、【判断题】关系表达式:9>8>7,其逻辑值为0。3.2多分支结构 1、【单选题】程序段: int a=10,b=20,x=100,ok1=5,ok2=0; if(a a、10 b、1 c、-1 d、不确定 2、【单选题】程序段: int x=10,y=20,z=30; if(x>y) z=x;x=y;y=z; 执行结束,x,y,z的值分别是:() a、20 30 30 b、10 20 30 c、20 30 10 d、20 30 20 3、【单选题】程序段: int a=10,b=20,x=100,ok1=5,ok2=0; if(a a、10 b、1 c、-1 d、不确定 4、【单选题】能正确表达a和b同时为正或同时为负的逻辑表达式是:() a、a*b>0 b、(a>=0||b>=0)&&(a<0||b<0) c、(a>=0&&b>=0)&&(a<0&&b<0) d、(a b>0&&a b<=0) 5、【单选题】int a=2,b=3,c=4; if(ac) c=8; else c ; 则最后 c的值是:() a、9 b、8 c、6 d、53.3章节测验 1、【单选题】下列程序段: #include void main() { int a,b,s; scanf(“%d%d”,&a,&b); s=a; if(s4 ,则程序的输出结果是: ( ) a、9 b、12 c、16 d、7 2、【单选题】下面的c语言代码,输出结果是:( ) int x, y, z; y=1;z=0; if ( z < 0 ) { x = 3; } else if ( y = = 0 ) { x = 5; } else { x = 7; } printf("x=%d",x); a、x=3 b、x=5 c、x=7 d、x为随机数 3、【单选题】int a=2,b=3,c=4; if(ac) c=8; else c ; 则最后 c的值是:() a、9 b、8 c、6 d、5 4、【单选题】以下程序段的输出结果是: ( ) int a=0, i; for (i=1; i<5; i ) { switch(i) { case 0: case 3: a = 2; case 1: case 2: a = 3; default: a = 5; } } a、13 b、31 c、10 d、20 5、【单选题】程序段: int a=12; if(a=0) { a=18; a ; } 请问a变量的值为:( ) a、0 b、12 c、18 d、194.1单循环结构 1、【单选题】循环语句: for(i=1;i<5;i ) i=2*i; 则执行结束,i值为:() a、4 b、5 c、7 d、8 2、【单选题】程序段: int i=0; while(i <5); 执行结束,i的值是:() a、8 b、7 c、6 d、5 3、【单选题】程序段: int i,k; for(i=k=0;i<10;i ) i ,k ; printf("%d\n",k); 执行结束,输出结果是:() a、5 b、6 c、7 d、8 4、【单选题】程序段: int x=-1; do{ x=x*x; }while(!x); 下列说法正确的是:() a、循环体执行一次 b、循环体执行二次 c、死循环 d、语法错误 5、【单选题】程序段: while(a) { if(b) continue; c; } 与其等价的程序段是:() a、while(a) { if(b) break; c; } b、while(a) { if(b) c; } c、while(a) { if(!b) c; } d、while(a) { if(!b) break; c; }4.2嵌套循环结构 1、【单选题】下列程序段,循环体被执行的次数是:() int i,j; for(i=5;i;i--) for(j=0;j<4;j ) {putchar('*');} a、20 b、25 c、4 d、6 2、【单选题】下列程序输出结果是:() int i,j,m,n; m=n=0; for(i=0;i<2;i ) for(j=0;j<2;j ) if(j>=i)m=1;n ; printf("n=%d\n",n); a、4 b、3 c、2 d、1 3、【单选题】程序段: int m,n; m=15,n=12; while(m!=n) { while(m>n)m-=n; while(m a、1 b、3 c、36 d、45 4、【单选题】下列程序段,实现2-100之间质数的输出,请选择完成程序填空:() int n,i; int flag; for(n=2;n<=100;n ) { ; for(i=2;i a、flag=0 flag=1 flag b、flag=1 flag=0 flag==0 c、flag=1 flag=0 flag d、flag=0 flag=1 flag==1 5、【单选题】 下列程序段,完成上图的输出,请选择完成程序填空:() int i,j; for(i=0;i<5;i )//输出5行 { for(j=1;j<=20-3*i;j ) printf(" ");//输出空格 for(j=1; ;j ) printf("=",j); for( ;j>0;j ) printf("=",j); printf("\n"); } a、j<=i j=i-1 b、j<=i j=i c、j d、j4.3章节测验 1、【单选题】程序段: int i,k; for(i=k=0;i<10;i ) i ,k ; printf("%d\n",k); 执行结束,输出结果是:() a、5 b、6 c、7 d、8 2、【单选题】循环语句: for(i=1;i<5;i ) i=2*i; 则执行结束,i值为:() a、4 b、5 c、7 d、8 3、【单选题】程序段: int i=0; while(i <5); 执行结束,i的值是:() a、8 b、7 c、6 d、5 4、【单选题】程序段: int x=-1; do{ x=x*x; }while(!x); 下列说法正确的是:() a、循环体执行一次 b、循环体执行二次 c、死循环 d、语法错误 5、【单选题】程序段: while(a) { if(b) continue; c; } 与其等价的程序段是:() a、while(a) { if(b) break; c; } b、while(a) { if(b) c; } c、while(a) { if(!b) c; } d、while(a) { if(!b) break; c; }5.1函数实现 1、【单选题】下列正确定义函数的是:() a、double fun(int x,int y) {z=x y; return z;} b、double fun(int x, y) {int z=x y; return z;} c、fun(int x,int y) {int z=x y; return z;} d、double fun(int x,int y) {double z=x y;} 2、【单选题】有关return语句,下列说明错误的是:() a、return语句是子函数中必不可少 b、子函数中可以有多条return语句 c、子函数中return语句可能不被执行 d、return语句可以返回常量、变量或表达式的值,甚至可以返回调用的函数值 3、【单选题】c语言有约定,函数返回值类型的决定权是:() a、主调函数类型 b、return语句中的表达式类型 c、自定义函数的返回类型 d、由系统决定 4、【单选题】下列子函数实现并调用,程序输出结果是:() int a=6,b=8; void fun(int ,int ); int main() { int a=3,b=4; fun(a,b); return 0; } void fun(int a,int b) { printf("%d\n",a b); } a、7 b、9 c、14 d、不确定数 5、【单选题】下列程序段输出结果是:() fun(int a,int b,int c) { c=a b; } int main() { int c; fun(12,34,c); printf("%d\n",c); return 0; } a、12 b、34 c、46 d、不定值5.2函数嵌套 1、【单选题】下列递归函数,计算double变量x的n次幂。 double pow(double x,int n) { if(n==0) ; if(n==1) ; ; } 请选择,完成程序填空。 a、retrun 1 return 1 return pow(x,n-1) b、x=1 x=x x=x*pow(x,n-1) c、retrun 1 return x return x*pow(x,n-1) d、retrun 0 return 1 return x*pow(x,n-1) 2、【单选题】下列程序的运行结果是:() fun(int); int main() { int x; x=fun(5); printf("%d\n",x); return 0; } fun(int n) { if(n>0) return (n*fun(n-2)); else return 1; } a、1 b、15 c、120 d、不能确定 3、【单选题】int fun() { static int x=3; x ; return x; } int main() { int i,x; for(i=0;i<3;i ) x=fun(); printf("%d\n",x); return 0; } a、3 b、4 c、5 d、6 4、【单选题】下列描述正确的是:() a、函数可以嵌套定义和调用 b、函数不可以嵌套调用,但可以嵌套定义 c、函数不可以嵌套定义,但可以嵌套调用 d、函数不可以嵌套定义,也不可以嵌套调用 5、【单选题】下列递归函数digitsum(n),处理一个非负整数,返回组成该数的所有数字之和。 例如, 调用digitsum(2019),则返回2 0 1 9,它的和是12。 请选择,完成程序填空:( ) #include int digitsum(unsigned int n); int main() { int num = 0; puts("请输入一个非负整数:"); scanf("%d", &num); printf("%d", digitsum(num)); system("pause"); return 0; } int digitsum(unsigned int n) { if (n <= 9) { return n; //n为一位数时,则直接返回 } return n % 10 digitsum( );//将每次取模相加 } a、n/10 b、n c、n/100 d、n-15.3章节测验 1、【单选题】下列正确定义函数的是:() a、double fun(int x,int y) {z=x y; return z;} b、double fun(int x, y) {int z=x y; return z;} c、fun(int x,int y) {int z=x y; return z;} d、double fun(int x,int y) {double z=x y;} 2、【单选题】有关return语句,下列说明错误的是:() a、return语句是子函数中必不可少 b、子函数中可以有多条return语句 c、子函数中return语句可能不被执行 d、return语句可以返回常量、变量或表达式的值,甚至可以返回调用的函数值 3、【单选题】c语言有约定,函数返回值类型的决定权是:() a、主调函数类型 b、return语句中的表达式类型 c、自定义函数的返回类型 d、由系统决定 4、【单选题】下列子函数实现并调用,程序输出结果是:() int a=6,b=8; void fun(int ,int ); int main() { int a=3,b=4; fun(a,b); return 0; } void fun(int a,int b) { printf("%d\n",a b); } a、7 b、9 c、14 d、不确定数 5、【单选题】下列程序段输出结果是:() fun(int a,int b,int c) { c=a b; } int main() { int c; fun(12,34,c); printf("%d\n",c); return 0; } a、12 b、34 c、46 d、不定值6.1一维数组 1、【单选题】执行下列程序段,将输出:( ) int i,a[9]={9,8,7,6,5,4,3,2,1}; for(i=0;i<4;i =2) printf("%d\t",a[i] ); a、5 1 b、5 2 c、5 3 d、9 7 2、【单选题】执行下列程序段,则输出:( ) int a[10]={1,2,3,4,5,6,7,8,9,10}; printf("%d\n",a[a[1]*a[2]]); a、7 b、4 c、3 d、2 3、【单选题】将字符串“hello!”赋值给字符数组st,不正确的是:() a、char st[5]="hello!" b、char st[]={'h','e','l','l','0','!'} c、char st[10]="hello!" d、char st[10]; strcpy(st,"hello!"); 4、【单选题】定义:char s[20]="china" ,则printf("length=%d\n",strlen(s));的输出是:() a、length=20 b、length=6 c、length=5 d、length=19 5、【单选题】判断字符串st1和st2是否相等,应使用:() a、if(st1=st2) b、if(st1==st2) c、if(strcpy(st1,st2)) d、if(strcmp(st1,st2)==0)6.2文件读写 1、【单选题】文件指针变量定义正确的是:() a、file *fp b、file fp c、filer *fp d、file *fp 2、【单选题】在c语言中,文件存取的单位是:( ) a、记录 b、元素 c、字节 d、文件 3、【单选题】c语言中,文件指针fp已指向文件末尾,则函数feof(fp)返回值是:() a、0 b、1 c、true d、false 4、【单选题】定义file *fp,则下列能正确表达将fp置于文件末尾的是:() a、feof(fp) b、rewind(fp) c、fseek(fp,0l,0) d、fseek(fp,0l,2) 5、【单选题】现有程序段: file *fp; int i; char str[20]; fp=fopen("name.txt","w "); for(i=0;i<40;i ) {scanf("%s",s); fputs(s,fp); fputc("n",fp);} fclose(fp); 则下列说法正确的是:() a、创建新文件name.txt b、往文件name.txt中写入40串姓名 c、往文件name.txt中写入40个字符 d、往文件中写入的姓名长度均为206.3字符串 1、【单选题】将字符串“hello!”赋值给字符数组st,不正确的是:() a、char st[5]="hello!" b、char st[]={'h','e','l','l','0','!'} c、char st[10]="hello!" d、char st[10]; strcpy(st,"hello!"); 2、【单选题】定义:char s[20]="china" ,则printf("length=%d\n",strlen(s));的输出是:() a、length=20 b、length=6 c、length=5 d、length=19 3、【单选题】判断字符串st1和st2是否相等,应使用:() a、if(st1=st2) b、if(st1==st2) c、if(strcpy(st1,st2)) d、if(strcmp(st1,st2)==0) 4、【单选题】程序段: char str[10]="98ab765";int i; for(i=0;str[i]>='0'&&str[i]<='9';i ) printf("%c\t",str[i]); 则输出结果是:() a、9 8 7 6 5 b、9 8 c、9 8 a b d、9 8 a b 7 6 5 5、【单选题】定义char s1[50],s2[50],则正确输入语句是:() a、gets(s1,s2); b、gets(s1[],s2[]) c、scanf("%s%s",&s1,&s2) d、scanf("%s%s",s1,s2)6.4二维数组 1、【单选题】定义int a[3][4],则对数组a中元素引用正确的是:() a、a[2][3] b、a[2,2] c、a[2][4] d、a(2,3) 2、【单选题】定义int a[3][4],则数组a的各元素:() a、可在程序运行阶段得到初始值0 b、在程序编译阶段得到初始值0 c、不能得到确定的初始值 d、在程序编译或运行阶段都有可能得到初始值 3、【单选题】程序段: char name[4][20]={"grace","tom","jake","mike"}; printf("%s",name[2]); 程序的输出结果是:() a、tomjakemike b、jakemike c、jake d、tom 4、【单选题】定义:int a[5][6]; 则数组a中的第10个元素是() 设a[0][0]为第一个元素。 a、a[1][3] b、a[2][5] c、a[2][4] d、a[0][9] 5、【单选题】程序段: int i,a[3][3]={9,8,7,6,5,4,3,2,1}; for(i=0;i<3;i =1) printf("m",a[1][i]); 运行此程序段,输出结果是:() a、6 5 4 b、9 5 1 c、9 6 3 d、9 8 76.5章节测验 1、【单选题】定义char s[10]; 则在下面表达式中不表示s[1]地址的是:( ) a. s 1 b. s c. &s[0] 1 d. &s[1] a、s 1 b、s c、&s[0] 1 d、&s[1] 2、【单选题】对一维int数组a进行初始化,正确的是:( ) a、int a[4]=(1,1,1,1) b、int a[5]={ } c、int a[2*3]={2*3} d、int a[]= 3、【单选题】执行下列程序段后,变量k的值是:( ) int k=3,s[2]; s[0]=k; k=s[1]*10; a、10 b、30 c、33 d、不定值 4、【单选题】下列程序段执行结束,输出结果是:( ) int a,b[5]=; a=0,b[0]=3; printf("%d,%d\n",b[a],b[1]); a、3,0 b、3 0 c、0,3 d、二者均为不定值 5、【单选题】对一维int数组a进行初始化,正确的是:( ) a、int a[3]=(1,2,3); b、int a[5]={}; c、int a[5]=; d、int n=5; int a[n]={1,2,3,4,5}7.1指针 1、【单选题】下列程序的输出结果是: ( ) #include "stdio.h" main() { int a[]={1,2,3,4,5,6,7,8,9,0}, *p; p=a; printf("%d\n", *p 9); } a、10 b、0 c、1 d、9 2、【单选题】变量的指针,其含义是指该变量的________. a、值 b、地址 c、名 d、一个标志 3、【单选题】若有语句int *point,a=4;和point=&a;下面均代表地址的一组选项是__ ___. a、a,point,*&a b、&*a,&a,*point c、*&point,*point,&a d、&a,&*point ,point 4、【单选题】若有以下定义,则p 5表示_______. int a[10],*p=a; a、元素a[5]的地址 b、元素a[5]的值 c、元素a[6]的地址 d、元素a[6]的值 5、【填空题】设有定义:int a, *p=&a; 以下语句将利用指针变量p读写变量a中的内容,请将语句补充完整。 scanf("%d", ___(1)____ ); printf("%d\n", ___(2)____ ); 请使用指针p完成填空。7.2指针与数组 1、【单选题】若有以下定义和语句: int s[4][5], (*ps)[5]; ps=s; 则对s数组元素的正确引用形式是:( ) a、ps 1 b、*(ps 3) c、*(ps 1) 3 d、ps[0][2] 2、【单选题】若有以下定义,则p 5表示_______. int a[10],*p=a; a、元素a[5]的地址 b、元素a[5]的值 c、元素a[6]的地址 d、元素a[6]的值 3、【单选题】下面程序段的运行结果是________. char *s="abcde"; s =2;printf("%s",s); a、cde b、字符'c' c、字符'c'的地址 d、无确定的输出结果 4、【填空题】若有如下定义和语句: int *p[3], a[6], n; for(m=0;m<3;m ) p[m]=&a[2*m]; 则*p[0]引用的是a数组元素____(1)_____;*(p[1] 1)引用的是a数组元素_____(2)____。 5、【填空题】若有以下定义和语句: int a[10], *p; p=a; 则在程序中,引用数组元素a[m]的四种形式是:______(1)_____、____(2)____、_____(3)_____和a[m]。(假设m 已正确说明并赋值)7.3指针与字符串 1、【单选题】变量的指针,其含义是指该变量的________. a、值 b、地址 c、名 d、一个标志 2、【单选题】若有语句int *point,a=4;和point=&a;下面均代表地址的一组选项是__ ___. a、a,point,*&a b、&*a,&a,*point c、*&point,*point,&a d、&a,&*point ,point 3、【单选题】下面程序段的运行结果是________. char *s="abcde"; s =2;printf("%s",s); a、cde b、字符'c' c、字符'c'的地址 d、无确定的输出结果 4、【单选题】设p1和p2是指向同一个字符串的指针变量,c为字符变量,则以下不能正确执行的赋值语句是_______. a、c=*p1 *p2 b、p2=c c、p1=p2 d、c=*p1*(*p2) 5、【单选题】定义: int a=2,b=3; int *p1=&a, *p2=&b; 下面不能正确执行的赋值语句是:( ) a. a=*p1 *p2; b. p1=a; c. p1=p2; d. a=*p1*(*p2); a、a=*p1 *p2; b、a=*p1*(*p2); c、p1=a; d、p1=p2;7.4指针与函数 1、【单选题】下列程序的输出结果是: ( ) #include "stdio.h" main() { int a[]={1,2,3,4,5,6,7,8,9,0}, *p; p=a; printf("%d\n", *p 9); } a、10 b、0 c、1 d、9 2、【单选题】若有以下定义和语句: int s[4][5], (*ps)[5]; ps=s; 则对s数组元素的正确引用形式是:( ) a、ps 1 b、*(ps 3) c、*(ps 1) 3 d、ps[0][2] 3、【单选题】若有语句int *point,a=4;和point=&a;下面均代表地址的一组选项是__ ___. a、a,point,*&a b、&*a,&a,*point c、*&point,*point,&a d、&a,&*point ,point 4、【单选题】变量的指针,其含义是指该变量的________. a、值 b、地址 c、名 d、一个标志 5、【单选题】若有以下定义,则p 5表示_______. int a[10],*p=a; a、元素a[5]的地址 b、元素a[5]的值 c、元素a[6]的地址 d、元素a[6]的值 6、【填空题】若有以下定义和语句: int a[10], *p; p=a; 则在程序中,引用数组元素a[m]的四种形式是:______(1)_____、____(2)____、_____(3)_____和a[m]。(假设m 已正确说明并赋值)7.5章节测验 1、【单选题】下列程序的输出结果是: ( ) #include "stdio.h" main() { int a[]={1,2,3,4,5,6,7,8,9,0}, *p; p=a; printf("%d\n", *p 9); } a、10 b、0 c、1 d、9 2、【单选题】变量的指针,其含义是指该变量的________. a、值 b、地址 c、名 d、一个标志 3、【单选题】下面程序段的运行结果是________. char *s="abcde"; s =2;printf("%s",s); a、cde b、字符'c' c、字符'c'的地址 d、无确定的输出结果 4、【填空题】若有以下定义和语句: int a[10], *p; p=a; 则在程序中,引用数组元素a[m]的四种形式是:______(1)_____、____(2)____、_____(3)_____和a[m]。(假设m 已正确说明并赋值) 5、【填空题】设有定义:int a, *p=&a; 以下语句将利用指针变量p读写变量a中的内容,请将语句补充完整。 scanf("%d", ___(1)____ ); printf("%d\n", ___(2)____ ); 请使用指针p完成填空。8.1结构体 1、【单选题】根据下面的定义,能打印出字母“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[l]); c、printf("%c\n",class[2].name[l]); d、printf("%c\n",class[2].name[0]); 2、【单选题】下面程序的运行结果是。 main() {struct cmplx {int x;int y;}cnum[2]={l,3,2,7}; printf("%d\n",cnum[0].y/cnum[0].x*cnum[1].x);} a、0 b、1 c、3 d、6 3、【单选题】设有以下结构体定义: struct emproyer {char name[8];int age;char sex;}staff; 则下面的叙述不正确的是 a、struct是结构体类型的关键字 b、struct emproyer是用户定义的结构体类型 c、staff是用户定义的结构体类型名 d、nameage和sex都是结构体成员名 4、【单选题】关于联合体,下面叙述不正确的是 a、联合体变量中成员项共用同一存储空间,因此,联合体变量的地址和每一个成员项的地址是同一地址 b、联合体变量中成员项所占存储空间量不同,因此,联合体中每一个成员项的地址不是同一地址 c、c语言规定不能对联合体变量赋值;也不能通过直接引用变量名来得到成员项,这与结构体是相同的 d、不允许将联合体变量作为函数参数,也不允许用联合体变量作为函数的返回值 5、【单选题】若有以下定义和语句: struct student {int num ;int age;}; struct student stu[3]={{l001,20},{1002,19},{1003,2l}}; main() {struct student *p;p=stu; ...} 则下列引用中不正确的是。 a、(p )→num b、p c、(*p).num d、p=&stu.age8.2结构体数组 1、【单选题】以下对结构体变量stul中成员age的非法引用是 struct st {int age;int num;}stul,*p; p=&stul; a、stul.age b、age c、p→age d、(*p).age 2、【单选题】定义一个联合体变量时,系统分配给它的内存是。 a、联合体中第一个成员所需内存量 b、联合体中最后一个成员所需内存量 c、成员中占内存量最大者所需的容量 d、各成员所需内存量的总和 3、【单选题】定义一个结构体变量时,系统分配给它的内存是 a、结构体中第一个成员所需内存量 b、结构体中最后一个成员所需内存量 c、成员中占内存量最大者所需内存量 d、各成员所需内存量的总和 4、【单选题】关于联合体,下面叙述不正确的是 a、联合体变量中成员项共用同一存储空间,因此,联合体变量的地址和每一个成员项的地址是同一地址 b、联合体变量中成员项所占存储空间量不同,因此,联合体中每一个成员项的地址不是同一地址 c、c语言规定不能对联合体变量赋值;也不能通过直接引用变量名来得到成员项,这与结构体是相同的 d、不允许将联合体变量作为函数参数,也不允许用联合体变量作为函数的返回值 5、【单选题】设有以下结构体定义: struct emproyer {char name[8];int age;char sex;}staff; 则下面的叙述不正确的是 a、struct是结构体类型的关键字 b、struct emproyer是用户定义的结构体类型 c、staff是用户定义的结构体类型名 d、nameage和sex都是结构体成员名8.3结构体指针 1、【单选题】以下程序的运行结果是。 typedef union {long a[2];int b[4];char c[8];}ty; ty our; main() {printf("%dn",sizeof(our));} a、32 b、16 c、8 d、24 2、【单选题】下面程序的输出是。 main() {enum team {my,your=4,his,her=his 10}; printf("%d%d%d%d\n",my,your,his,her);} a、0 1 2 3 b、0 4 0 10 c、0 4 5 15 d、l 4 5 15 3、【单选题】设有一联合体变量定义如下: union data {long w;float x;int y;char z;}; union data beta; 执行下面赋值语句后,正确的联合体变量beta的值是。 beta.w=123321;beta.y=88;beta.x=99.9;beta.z='a'; a、123321 b、88 c、99.9 d、'a' 4、【单选题】根据下面的定义,能打印出字母“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[l]); c、printf("%c\n",class[2].name[l]); d、printf("%c\n",class[2].name[0]); 5、【单选题】设有以下结构体定义: struct emproyer {char name[8];int age;char sex;}staff; 则下面的叙述不正确的是 a、struct是结构体类型的关键字 b、struct emproyer是用户定义的结构体类型 c、staff是用户定义的结构体类型名 d、nameage和sex都是结构体成员名8.4链表 1、【单选题】以下对结构体变量stul中成员age的非法引用是 struct st {int age;int num;}stul,*p; p=&stul; a、stul.age b、age c、p→age d、(*p).age 2、【单选题】定义一个联合体变量时,系统分配给它的内存是。 a、联合体中第一个成员所需内存量 b、联合体中最后一个成员所需内存量 c、成员中占内存量最大者所需的容量 d、各成员所需内存量的总和 3、【单选题】定义一个结构体变量时,系统分配给它的内存是 a、结构体中第一个成员所需内存量 b、结构体中最后一个成员所需内存量 c、成员中占内存量最大者所需内存量 d、各成员所需内存量的总和 4、【单选题】关于联合体,下面叙述不正确的是 a、联合体变量中成员项共用同一存储空间,因此,联合体变量的地址和每一个成员项的地址是同一地址 b、联合体变量中成员项所占存储空间量不同,因此,联合体中每一个成员项的地址不是同一地址 c、c语言规定不能对联合体变量赋值;也不能通过直接引用变量名来得到成员项,这与结构体是相同的 d、不允许将联合体变量作为函数参数,也不允许用联合体变量作为函数的返回值 5、【单选题】设有以下结构体定义: struct emproyer {char name[8];int age;char sex;}staff; 则下面的叙述不正确的是 a、struct是结构体类型的关键字 b、struct emproyer是用户定义的结构体类型 c、staff是用户定义的结构体类型名 d、nameage和sex都是结构体成员名8.5章节测验 1、【单选题】下面程序的输出是。 main() { struct cmplx{int x;int y;} cnum[2]={1,3,2,7}; printf("%d\n",cnum[0].y/cnum[0]. x*cnum[1].x); } a、0 b、1 c、3 d、6 2、【单选题】以下对结构体变量stul中成员age的非法引用是 struct st {int age;int num;}stul,*p; p=&stul; a、stul.age b、age c、p→age d、(*p).age 3、【单选题】下列语句中可以完成建立2结点的单向链表的功能的选项是。 a、head→next=new; new→next=head; b、new→next=head;head=new; c、new→next=head; head=new;new→next=null; d、head→next=null; head→next=new;new→next=null; 4、【单选题】下面程序的运行结果是。 main() {struct cmplx {int x;int y;}cnum[2]={l,3,2,7}; printf("%d\n",cnum[0].y/cnum[0].x*cnum[1].x);} a、0 b、1 c、3 d、6 5、【单选题】设有以下结构体定义: struct emproyer {char name[8];int age;char sex;}staff; 则下面的叙述不正确的是 a、struct是结构体类型的关键字 b、struct emproyer是用户定义的结构体类型 c、staff是用户定义的结构体类型名 d、nameage和sex都是结构体成员名猜你喜欢 2022-12-05 21:33 2022-12-05 20:58 2022-12-05 20:17 2022-12-05 19:55 2022-12-05 19:44 2022-12-05 19:44 2022-12-05 19:18 2022-12-05 19:15 2022-12-05 19:15 2022-12-05 19:10