(21)以下程序的输出结果是
main()
{ int a,i;a=0;
for(i=1;i<5;i++)
{ switch(i)
{ case 0:
case 3:a+=2;
case 1:
case 2:a+=3;
default:a+=5; }
}printf("%d\n",a);}
A)31 B)13 C)10 D)20
(22)现有如下程序段
#include "stdio.h"
main()
{ int k[30]={12,324,45,6,768,98,21,34,453,456};
int count=0,i=0;
while(k[i])
{ if(k[i]%2==0||k[i]%5==0)count++;
i++; }
printf("%d,%d\n",count,i);}
则程序段的输出结果为
A)7,8 B)8,8 C)7,10 D)8,10
(23)若有以下程序
#include
int a[]={2,4,6,8};
main()
{ int i;
int *p=a;
for(i=0;i<4;i++)a[i]=*p;
printf("%d\n",a[2]);}
上面程序的输出结果是
A)6 B)8 C)4 D)2
(24)有以下程序
#include
main()
{ int i,j,m=55;
for(i=1;i<=3;i++)
for(j=3;j<=i;j++)m=m%j;
printf("%d\n",m);
}
程序的运行结果是
A)0 B)1 C)2 D)3
(25)已知字符′A′的ASCII码值是65,字符变量cl的值是′A′,c2 的值是′D′。执行语句printf("%d,%d",c1,c2-2);后,输出结果是
A)A,B B)A,68 C)65,66 D)65,68
参考答案
(21)A 【解析】本题考查用于多分支选择的switch语句, 其一般形式为:
switch(表达式)
{
case常量表达式1: 语句1;
case常量表达式2: 语句2;
…
case常量表达式n: 语句n;
default : 语句n+1;
}
其语义是:计算表达式的值,并逐个与其后的常量表达式值进行比较,当表达式的值与某个常量表达式的值相等时,即执行其后的语句,然后不再进行判断,继续执行后面所有 case后的语句;如表达式的值与所有case后的常量表达式均不相等时,则执行default后的语句。
(22)D 【解析】在C语言中,定义一维数组的语句一般形式如下:
类型名数组名[常量表达式];
一维数组的引用形式为:数组名[下标表达式]。count表示能被2整除或被5整除的个数,i则计算有多少个数组元素。
(23)D 【解析】在C语言中,数组元素下标是从0开始的;指针变量p指向数组的首地址。for循环语句中,指针变量p始终指向数组的首地址,因而执行循环赋值语句后数组各元素的值均变为2。
(24)B 【解析】本题考查循环语句的嵌套以及条件的判断问题。在程序中,内层循环判断条件为"j<=i",而j的初值为3,故当i的值为1和2时,内层循环体都不会被执行。只有当i和j都等于3时才会执行一次。m的值为55对3取模,计算结果为1。
(25)C 【解析】在C语言中,字符型数据在内存中的存储形式是ASCII码值。当需要以整型格式输出字符时,输出的也是ASCII码值。字符'A'和'D'的ASCII码值分别为65和68。