C语言简答题目

1、下面程序的输出结果是什么。
#include<stdio.h>
int d=1;
int fun(int p)
{
static int d=5;
d+=p;
printf("%5d",d);
return d;
}
void main( )
{
int a=1;
printf("%5d\n",fun(a+fun(d)));
}
3、下面程序的输出结果是什么。
#include<stdio.h>
void main( )
{
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;
}
}
printf(“%d\n”, a );
}

5、下面程序的输出结果是什么。
#include<stdio.h>
void main( )
{
int p[7]={11,13,14,15,16,17,18},i=0,k=0;
while(i<7&&p[i]%2) { k=k+p[i]; i++; }
printf(“%d\n”, k );
}

7、请用一个条件表达式写出:如果c的值是大写字母,则将其转换成对应的小写字母,否则其值不变。
8、请写一个C表达式,如果整型数a的个位数字是5,则表达式的值为非0,否则为0。
9、将下面if-else语句改成一个条件表达式语句。
if(x>=y) m=x;
else m=y;
}
10、将下列嵌套的条件语句用switch语句改写,且功能等效(其中m是:1≤m<5的浮点类型数据)。
if(m>=1)
if(m<2) k=1;
else if(m<3) k=2;
else if(m<4) k=3;
else if(m<5) k=4;

第1个回答  2013-01-02
其它的的楼上一样,就是3,5的答案错位了。直接就给答案啊。。。
1、6 13 13 /*(注:6前面4个空格,每个13前面各三个空格)*/
3、31; 这个你注意case语句后面是没有break的,所以当i=1;case1以下的语句都执行一遍此时a=8;i=2:a=16;i=3:a=26;i=4:a=26+5=31
5、24;这里主要时要注意p[i]%2这个条件,当p[i]%2=0时,while循环也就终止了,所以只有11+13=24;
7、c = (c>='A' && c<='Z') ? (c+=32) : c
8、m=n%10==5?1:0; /*如果n的个位是5则m=1,否则等于m=0;*/
9、m = (x >= y) ? x : y
10、
switch((int)m){
case 1: k=1; break;
case 2: k=2; break;
case 3: k=3; break;
case 4: k=4; break;
/* default: printf("error"); break;*/
}
第2个回答  2013-01-02
1、6 13 13 /*(注:6前面4个空格,每个13前面各三个空格)*/
3、24
5、31
7、c = (c>='A' && c<='Z') ? (c+=32) : c
8、m=n%10==5?1:0; /*如果n的个位是5则m=1,否则等于m=0;*/
9、m = (x >= y) ? x : y
10、
switch((int)m){
case 1: k=1; break;
case 2: k=2; break;
case 3: k=3; break;
case 4: k=4; break;
/* default: printf("error"); break;*/
}本回答被提问者和网友采纳