C语言题目简答题

1、请用一个条件表达式写出:如果c的值是大写字母,则将其转换成对应的小写字母,否则其值不变。

2、请写一个C表达式,如果整型数a的个位数字是5,则表达式的值为非0,否则为0。

3、将下面if-else语句改成一个条件表达式语句。{

}

4、将下列嵌套的条件语句用switch语句改写,且功能等效(其中m是:1≤m<5的浮点类型数据)。{

}

5、下面程序的输出结果是什么。
#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)));
}
6、C语言以上代码使用_______软件编写.

1、(c>=65 && c<=90)?(c=c+32):(c=c) /*符合你的要求,不是C语句,而是C表达式*/
2、a%10==5 /*符合你的要求,不是C语句,而是C表达式*/
3、【题目不全啊】
4、【题目不全啊】
5、这个题算是所有6个题中最难的了。
  首先,fun函数中定义了一个static类型的变量,含义如下:
  有时希望函数中的 局部 变量的值在函数调用结束后不消失而保留原值,即其占用的存储单元不释放,在下一次该函数调用时,该变量已有值,就是上一次函数调用结束时的值。这时就应该指定该局部变量为“静态局部变量”,用关键字static进行声明。
  这道题还有一个迷惑点是,该程序还在“文件包含”命令下面定义了一个全局变量,变量名同样也是d。全局变量(或全程变量)可以为本文件中其它函数所共用,其有效范围从定义变量的位置开始,到本源文件结束。
  这里要注意,这两个d虽然名字相同,但他们不是一个变量,两者地址不同,即占用的存储单元不一样。
  要解决这道题,你还应该了解:一个C程序总是从main函数开始执行的,而不论main函数在整个程序中的位置如何(main函数可以放在程序最开头,也可以放在程序最后,或在一些函数之前,或在另一些函数之后)。
  上面的问题清楚之后,下面就容易了。先执行main函数,第一句
int a=1;
定义了整型变量a并赋初值为1。然后调用输出函数
printf("%5d\n",fun(a+fun(d)));
这里,printf函数的输出列表中调用了fun函数,而fun函数中的参数是一个表达式a+fun(d),这个表达式中也有fun函数,其参数是d,这里,这个d 作为实参,必定是在“文件包含”命令下面定义的全局变量d,即先执行了fun(1)。
好,我们看看执行fun(1)是什么效果。首先形参p得到了实参的值1,然后
static int d=5;
定义了一个局部静态变量d, 并初始化为5,然后
d+=p;
就相当于“d=d+p;”,即d=5+1,d的值为6,然后
printf("%5d",d);
输出了当前局部静态变量d的值6,然后
return d;
即函数返回值为6,main函数中fun(d)就可以用数字6代替,a+fun(d)就是7了。
然后又调用了一次fun函数,fun(a+fun(d)),即fun(7)。
好,我们继续看这时函数应该如何调用。还是形参p得到了实参值7,然后
static int d=5;
由于fun函数里的d是静态变量,在第一次调用该函数时d已经被定义,系统已经为它分配了存储存单元,所以,这次再调用fun函数的时候,d不用再定义了,而且保留上次的值6,也就是说,这次的“d=5”是不会被执行的。继续,
d+=p;
即d=d+p,也就是6+7,这次fun函数里的局部静态变量d的值为13,
printf("%5d",d);
输出d的值13,然后
return d;
fun函数返回值为13。回到main函数,fun(a+fun(d))即可用13 来代替,然后
printf("%5d\n",fun(a+fun(d)));
输出13,换行,程序运行结束。
  分析完执行过程,这个题的答案就有了。由于printf函数中写在%和d之间的整数代表输出字段宽度为5(如果数据的位数小于5,则左补空格,若大于5,则按实际位数输出),fun函数的printf函数的格式控制字符串中没有换行符'\n',所以最终输出结果应该只有一行:
6 13 13
press any key to continue
要注意,6前面有4个空格,6和第一个13之间有3个空格,两个13之间也有3个空格,第二个13后面什么都没有直接换行。最后的“press any key to continue”是Visual C++ 6.0系统自动生成的,提示程序已经运行完毕,按任意键退出。
6、Visual C++ 6.0 或 Turbo C++ 3.0

艾玛,打这么多字累屎了。。。。。。
温馨提示:答案为网友推荐,仅供参考
第1个回答  2012-06-09
1.#include <stdio.h>

void main()
{
char a,b;
scanf("%c",&a);
if((a>=97) && (a<=122))
{
b=a-32;
printf("%c\n",b);
}
else
{
printf("Please enter the character between a-z\n");
}
}
2.#include <stdio.h>

void main()
{
int answer,a;
printf("请输入数据a:");
scanf("%d",&a);
answer = (a%10)==5?1:0;
printf("结果为:%d",answer);
}
5. 6 13 13
第2个回答  2012-06-09
好好学习,天天向上。还是自己做的好
第3个回答  2012-06-09
1、if(c>=65&&c<=91) c=c-32;else c=c;
相似回答