蓝莓题库

超星尔雅程序设计语言i(c语言)-k8凯发

欢迎来访!

k8凯发-凯发官网入口财经类问答 正文

作者2022-12-05 20:28:12财经类问答 78 ℃0 评论
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的值为真,表达式的值为1

3.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、5

3.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、19

4.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、j
4.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-1

5.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、往文件中写入的姓名长度均为20

6.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 7

6.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.age

8.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
网站地图