sokaoti.com
东大19春学期《高级语言程序设计基础》在线作业21答案

有下面的程序段:chara[3],b[]=”student”;a=b;printf(“%s”,a);则()

A.运行后将输出student;

B.运行后将输出b;

C.运行后将输出a

D.编译出错


参考答案:D


执行以下程序段 ( ) x=-1; do { x=x*x; } while(!x);

A.循环体将执行一次

B.循环体将执行两次

C.循环体将执行无限次

D.系统将提示有语法错误


正确答案:A


有以下程序: main() {int a[]={2,4,6,8,10),y=0,x,*P; P=&a[1]; for(x=1;x<3;x++)y+=p[x]; printf("%d\n",y); } 程序运行后的输出结果是( )。

A.10

B.11

C.14

D.15


正确答案:C
解析:指针变量p指向数组元素a[1],则p[1]即为a[2],p[2]即为a[3],执行第一次for循环时,y=y+p[1]=0+a[2]=6,第二次执行for循环,y=y+p[2]=6+a[3]=14,此时x为3,for循环条件不满足,退出循环,输出y的值为14。


设有以下程序段

int x=0,s=0;

while(!x!=0)s+=++x;

printf("%d",s);

A.运行程序段后输出0

B.运行程序段后输出1

C.程序段中的控制表达式是非法的

D.程序段执行无限次


正确答案:B


有以下程序段:intx=0,s=0;while(!x!=0)s+=++x;printf("%d",s);则有以下程序段()。

A.运行程序段后输出0

B.运行程序段后输出1

C.程序段中的控制表达式是非法的

D.程序段执行无限次


正确答案:B


18秋学期高级语言程序设计基础在线作业2-0001试卷总分:100 得分:0一、 单选题 (共 20 道试题,共 100 分)1.有两个字符数组a、b,则以下正确的输入语句是( )。A.gets(a,b);B.scanf(%s%s,a,b);C.scanf(%s%s,&a,&b);D.gets(a); gets(b);正确答案:B2.设x、y均是int类型变量,且x值为100,则关于以下for循环的正确判断是( )。 for (y=100; x!=y; +x,y+) printf(*n);A.循环体只执行一次B.是无限循环C.循环体一次都不执行D.for语句中存在语法错误正确答案:C3.有下面的程序段 char a3,b=China; a=b; printf(%s,a); 则( )。A.运行后将输出ChinaB.运行后将输出ChC.运行后将输出ChiD.编译时出错正确答案:D4.下面程序段的输出结果是( )。 int a=023;printf(%dn,-a);A.23B.17C.18D.24正确答案:C5.语句while (!y)中的表达式 !y 等价于( )。A.y=0B.y!=1C.y!=0D.y=1正确答案:A6.以下判断正确的是( )。A.char *s=string; 等价于char *s; *s=string;B.char str10=string; 等价于char str10; str=string;C.char *s=string; 等价于char *s; s=string;D.char str10=string; 等价于char str10; *str=strint;正确答案:C7.若执行下述程序时从键盘输入3 4,则输出结果是( )。#include main( ) int a,b,s; scanf(%d%d,&a,&b); s=a; if (ab) printf(%dn,s*s); s=b; A.186B.256C.324D.400正确答案:B8.若有语句:int a=4, *p=&a;,下面均代表地址的一组选项是( )。A.a, p, &*aB.*&a, &a, *pC.&a, p, &*pD.*&p, *p, &a正确答案:C9.以下能正确进行字符串赋值操作的是( )。A.char s5=12345;B.char s5=1, 2, 3, 4, 5;C.char *s; *s=12345;D.char *s=12345; 正确答案:D10.以下对指针变量的操作中,不正确的是( )。A.int p, *q; q=&p;B.int *p, *q; q=p=NULL;C.int a=5, *p; *p=a;D.int a=5, *p=&a, *q=&a; *p=*q;正确答案:C11.以下正确的说法是( )。A.实参和与其对应的形参各占用独立的存储单元B.实参和与其对应的形参共占用一个存储单元C.只有当实参和与其对应的形参同名时才共用存储单元D.形参是虚拟的,不占用存储单元正确答案:D12.若k为整型变量,则以下for循环的执行次数是( )。 for (k=2; k=0; ) printf(%d,k-);A.无限次B.0次C.1次D.2次正确答案:B13.在C语言中,一维数组的定义方式为:类型说明符 数组名( )。A.常量表达式B.整型表达式C.整型常量或整型表达式D.整型常量正确答案:A14.下面程序的输出结果为( )。 main( ) int a=1,b=0; switch(a) case 1: switch (b) case 0: printf(*0*); break; case 1: printf(*1*); break; case 2: printf(*2*); break; A.*0*B.*0*2*C.*0*1*2*D.有语法错误正确答案:B15.若a为int类型变量,则执行以下程序段后a的值为( )。 a=5;a*=a/=a+;A.2B.1C.40D.3正确答案:A16.以下在任何情况下计算两数积时都不会引起二义性的宏定义是( )。A.#define MUL(x,y) x*yB.#define MUL(x,y) (x)*(y)C.#define MUL(x,y) (x*y)D.#define MUL(x,y) (x)*(y)正确答案:D17.下程序( )。 main( ) int x1=3, x2=0, x3=0; if (x1=x2+x3) printf(* * * *); else printf(# # # #);A.输出:* * * *B.输出:# # #C.#存在语法错误D.无输出结果正确答案:B18.若希望当num的值为奇数时,表达式的值为“真”,num的值为偶数时,表达式的值为“假”。则以下不能满足要求的表达式是( )。A.num%2=1B.!(num%2=0)C.!(num%2)D.num%2正确答案:C19.若有定义:int x10, *p=x;,则*(p+5)表示( )。A.数组元素x5的地址B.数组元素x5的值C.数组元素x6的地址D.数组元素x6的值E.选项内容11F.选项内容11G.选项内容11正确答案:B20.执行以下程序后,m的值是( )。 #define MIN(x, y)(x)(y) ? (x) : (y) main( ) int i=12, j=8, m; m=10*MIN(i, j); printf(%dn, m);A.120B.80C.12D.8正确答案:D

设x、y均是int类型变量,且x值为100,则关于以下for循环的正确判断是()。 for (y=100; x!=y; ++x,y++) printf("****\n");

A.循环体只执行一次

B.是无限循环

C.循环体一次都不执行

D.for语句中存在语法错误


参考答案C


设有如下程序段:int x=2002,y=2003;printf(“%d\n”, (x,y)); 则以下叙述中正确的是

A.输出语句中格式说明符的个数少于输出项的个数,不能正确输出

B.运行时产生出错信息

C.输出值为2002

D.输出值为2003


正确答案:D
解析:逗号运算符的结合性为从左到右,其一般形式为“表达成1,表达式2”,整个表达式的值为表达式2的值。故4个选项中选项D符合题意。


有以下程序

void f( int y, int *x)

{ y=y+*x; *X=*X+y; }

main()

{ int x=2,y=4;

f(y,&x);

printf("%d %d\n",x,y);

}

执行后输出结果是______。


正确答案:8 4
8 4 解析:本题考核的知识点是函数的调用、值传递和地址传递的区别。“值传递”指实参将值传递给形参后,实参与形参再无联系。也就是说对行参的改变将不影响实参;地址传递是指地址或数组名作为形参时的参数传递,这种情况下对形参的改变将对实参产生影响.函数 f(Y*x)的作用是让y的值加上指针x所指向变量的值,让指针x所指向变量的值加上y的值。由于形参y是传值的,形参x是传地址的,故调用该函数后,作为实参的y的值将不改变,而实参x的值将改变,故最后输出的y的值为4,而x的值为8。


下面程序段 int k=2; while (k==0) {printf(“%d”,k);k--;} 则下面描述中正确的是()。

A. while 循环执行 10 次

B. 循环是无限循环

C. 循环体语句一次也不执行

D. 循环体语句执行一次


正确答案:C


有下面程序段 char a[3],b[]="China"; a=b; printf("%3",a);则下面的说法正确的是______。

A.运行后见输出China

B.运行后见输出Ch

C.运行后见输出Chi

D.编译出错


正确答案:D

更多 “东大19春学期《高级语言程序设计基础》在线作业21答案” 相关考题
考题 设有以下程序段 int x=0,s=0; while(!x!=0)s+=++x; printf("%d",s);A.运行程序段后输出0B.运行程序段后输出1C.程序段中的控制表达式是非法的D.程序段执行无限次正确答案:B解析:本题考查逻辑非运算符和不等于运算符的区别,逻辑非运算符“!”的优先级大于不等于运算符“!=”的优先级。注意:for语句和do…while语句的使用。

考题 有以下程序:includemain(){int x=3,y=2,z=1; printf("%d\n",x/y&~z);程序运行后的有以下程序: #include <stdio.h> main() { int x=3,y=2,z=1; printf("%d\n",x/y&~z); 程序运行后的输出结果是( )。A.3B.2C.1D.0正确答案:D解析:&是按位“与”运算符,若参加运算的两个运算量的相应位都为1,则该位的结果值为1,否则为0。~是“取反”运算符,用来对一个二进制数按位取反,即将0变1,1变0。对于x/y&~z,先计算x/y的值,结果为1,用十六进制表示为0001;z用十六进制表示为0001,则~z为FFFE;最后进行&运算,整个表达式的值为0。

考题 多选题设有程序段:intx=0,s=0;while(x!=0)s+=++x;printf("%d",s);,则运行程序段后()A输出0B输出1C控制表达式是非法的D执行无限次正确答案:B,C解析:暂无解析

考题 当执行以下程序段时,______。x=-1 ;do { x=x*x;}while (!x);A.循环体将执行1次B.循环体将执行2次C.循环体将执行无限次D.系统将提示有语法错误正确答案:A

考题 当执行以下程序段时,( )。 x=-l: do{x=x*X;)while(!x);A. 循环体将执行一次B.循环体将执行两次C.循环体将执行无限次D.系统将提示有语法错误正确答案:Ado-wlfile的功能是先执行一次循环体,再判断条件是否成立,当x=-1时,执行do语句,x=x*x=1,接着执行while后的表达式,其值为0,退出循环,因此循环体只执行了一次。

考题 设有程序段:intx=0,s=0;while(x!=0)s+=++x;printf("%d",s);,则运行程序段后()A、输出0B、输出1C、控制表达式是非法的D、执行无限次正确答案:A,B

考题 当执以下程序段时,循环体将执行( ), main() { int y=1; do{y- -;}while(--y): }A.一次B.两次C.无限次D.系统将提示有语法错误正确答案:C

考题 下面的程序输出结果是______。 main() { int x=3; while(!(--x)) printf("%d\n",x-=2); }A.不执行循环体B.1C.0D.是死循环正确答案:A

考题 有下面的程序段: char str[10],ch[]="China"; str=ch; printf("%s",str); 则运行时______。A.将输出ChinaB.将输出ChC.将输出ChiD.编译出错正确答案:D

考题 下面的程序 main() { int x=3,y=0,z=0; if(x=y+z)printf("***"); else printf("####"); } _______。A.有语法错误不能通过编译B.输出****C.可以通过编译,但是不能通过连接,因而不能运行D.输出####正确答案:D解析:本题的考查点是运算符在表达式中的处理原则。本题中把y+z的值赋给x,由于y和z都等于0,所以x的值也为0,表达式值为false,输出####。if语句中if后面的表达式—般为逻辑或关系表达式,但也可以是任意的数值类型。