14) 若运行以下程序时, 从键盘输入ADescriptor3, 则下面程序的运行结果是( D )。 #include<stdio.h> void main(void) { char c; int v0=0, v1=0,v2=0; do { switch( c=getchar() ) { case 'a': case 'A': case 'e': case 'E': case 'i': case 'I': case 'o': case 'O': case 'u': case 'U':v1+=1; default:v0+=1;v2+=1; } } while( c!='\n' ); printf("v0=%d,v1=%d,v2=%d\n",v0,v1,v2); } A、v0=7,v1=4,v2=7 B、v0=8,v1=4,v2=8 C、v0=11,v1=4,v2=11 D、v0=12,v1=4,v2=12
15) 在C语言中, 引用数组元素时, 其下标的数据类型允许是( C )。 A、整型常量。 B、整型表达式。 C、整型常量或整型表达式。 D、任何类型的表达式。
程序填空题(4小题,每题2~3空,每套10空,每空2分,共20分) 1) 将以下嵌套的if语句改写在对应的switch语句, 使其完成相同的功能。 (假设mark的取值在1至100之间。) if语句: if(mark<60) k=1; else if(mark<70)k=2; else if(mark<80)k=3; else if(mark<90)k=4; else if(mark<=100)k=5; switch语句: switch( ① ) { ( ② ) k=1;break; case 6 : k=2;break; case 7 : k=3;break; case 8 : k=4;break; ( ③ ) k=5; } 答案:mark/10 case 0:case 1:case 2:case 3:case 4:case 5: default:或case 9:case 10:
2) 某服装店经营套服,也单件出售。若买的不少于50套,每套80元;不足50套的每套90元;只买上衣每件60元;只买裤子每条45元。以下程序的功能是读入所买上衣c和裤子t的件数,计算应付款m。 void main(void) { int c,t,m; printf("input the number of coat and trousers your want buy:\n"); scanf("%d %d",&c,&t); if ( ① ) if (c>=50) m=c*80; else m=c*90; else if ( ② ) if (t>=50)m=t*80+(c-t)*60; else m=t*90+(t-c)*60; else if ( ③ ) m=c*80+(t-c)*45; else m=c*90+(t-c)*45; printf("%d",m); } 答案:c==t c>t c>=50
3) 以下程序是计算x,y,z三个数中值最小的。 void main(void) { int x=4,y=5,z=8; int u,v; u=x<y? ( ① ) ; v=u<z? ( ② ) ; printf("%d",v); } 答案:x:y u:z
4) 阅读下面的程序并回答问题。 void main(void) { int m,n,x,y; scanf("%d,%d",&x,&y); m=1; n=1; if (x>0) m=m+1; if (x>y) n=m+n; else if (x==y) n=5; else n=2*m; printf("m=%d,n=%d",m,n); } 问题:为了使输出n=4, x的输入值应当为( ① ),y的输入值应当为( ② ) 注:必须使用C语言语法来描述,如:x<2 && x<3,否则不得分。 答案:x>0 && x<y y>x