关于C语言的题不会做,请会做的大大们帮帮忙..谢谢.!

1. 在C语言中,变量所分配的内存空间大小
A. 均为一个字节
B. 由用户自己定义
C. 由变量的类型决定
D. 是任意的
2. 下列哪些为C语言中合法的字符常数:
A. ‘AB\0’
B. ‘0’
C. “C Language”
D. ‘AB’
3. 在循环结构的循环体中执行break语句,其作用是:
A. 结束本次循环,进行下次循环
B. 继续执行break语句之后的循环体中各语句
C. 跳出该循环体,提前结束循环
D. 终止程序运行
4. 已定义char x[8]; int i;为了给x数组赋值,以下正确的语句是:
A. x[8]=”Turbo C”;
B. x=”Turbo C”;
C. x[]=”Turbo C”;
D. for(i=0; i<7; i++) x[i]=getchar();
5. 设int a[][4]={0, 0};则以下正确的描述是:
A. 数组a的每个元素都可得到初值0
B. 二维数组a的第一维大小为2
C. 数组a的行数为4
D. 只有元素a[0][0]和a[0][1]可得到初值0,其余元素得不到初值0
6. 表达式3/5的值为:
A. 0
B. 0.6
C. 0.600000
D. 1

7. 下面关于函数的描述中,正确的是:
A. 每个函数都必须要有return语句,返回一个返回值
B. 每个函数中只可能有一个return语句
C. 如果一个函数有两个以上的return语句,它们必须全部被执行到
D. 如果函数没有返回值,可以不要return语句
8. 若已定义变量int x; 以下哪个表达式可以正确判断x的取值是在大于等于2小于等于15之间:

A. 2≤x≤15
B. 2≤x and x≤15
C. 2≤x && x≤15
D. x>=2 && x<=15

9. 若已定义变量char *p, array[]=”C Language”; 要想使指针p指向数组array, 以下哪个语句是正确的:

A. p = *array;
B. p = &array[0];
C. p = ”C Language”;
D. array = p;
10. 以下正确的描述是:
A. 在函数外部定义的变量是局部变量
B. 在函数内部定义的变量是全局变量
C. 函数的形参是局部变量
D. 局部变量不能与全局变量同名
11. 下面程序的运行结果是:
int j=1, k=0,m;
m=( ++j) + (k++);
printf (“%d,%d,%d”, ++m, j++, ++k);

A. 2, 2,1
B. 2, 2, 2
C. 3, 2,2
D. 3, 2, 1

12. 下面程序段的运行结果是:
int a= 2,b=2;
a+=b/=a*=3;
printf (“%d” , a) ;

A. 8.3
B. 6.3
C. 6
D. 8

13. 下面程序的运行结果是:
int flag=1;
void fun( int n)
{ int k ;
for ( k=2;k<=n-1&&flag;k++)
if (n%k= = 0) flag = 0 ; }
void main ()
{ fun (34);
printf (“%d”, flag); }

A. 0
B. -1
C. 2
D. 1

14. 下面程序的运行结果是:
char name[3][20]={“Tea”, “Join”, “May”};
int m=0 ,k;
for (k=1;k<=2;k++)
if(strcmp (name [k],name[m])>0) m=k;
puts ( name[m]);

A. Join
B. Join May
C. May
D. Tea

15. 下面程序的运行结果是:
char str[20]=”This is my book”;
str[4]=’\0’; str[9]=’\0’;
printf (“%d”,strlen (str));

A. 15
B. 5
C. 3
D. 4

1.C 是按照变量的类型来分配的,象int型变量分配两个内存单元,char型变量分配一个内存单元。

2.B 字符常量是用单引号括起来的一个字符,除了普通的字符常量还有一种字符常量是以\开头的例如‘\n’这个转义字符,作用是换行。至于具体的各类转义字符你慢慢学习吧。

3.C break的作用就是彻彻底底地结束该循环,不管下面还有没有语句。而continue的作用是将该层循环结束,继续判断循环条件是否成立,再进行循环。

4.D 对于数组中各元素的附值必须要用循环方式,一个一个地进行附值。对于静态存储的数组可以在定义时进行初始化,此时就不需要一个个地附值了。但定义以后若要对各元素附值则,必须用循环。

5.A 这题就是定义一个整型数组并初始化,可以省略第一维的大小,该题目实际上数组相当于a[1][4],是个1行4列的数组,其内部的值都是0,因为初始化时没写的部分自动为0。

6.A 因为3和5都是整型数据,他们运算的结果也是整数类型,即0。关于不同类型数据运算有什么方法,请看最后,我对此作的补充。

7.D 一个函数可以没有return语句,比如有些void型函数,这种函数就指定不返回值到代入处。故A选项错误;一个函数可以有两个return语句,比如有时候需要判断哪个值被传回去时,用if() return();else return();但必须只有一个,因为函数只能返回一个值给代入处。故此B,C都是错误的。

8.D 很简单因为C语言的关系运算符没有A,B,C里面》《的。

9.B 要使一个指针指向对应类型的数组,就是将数组的首地址附给该指针,而数组首地址有两种表示法,一个是该数组名,另一个是该数组第一个元素的地址,也就是下面两种方法:<1> p=a;<2>p=&a[0];

10.C 形参就是局部变量。这方面内容也算比较多,不一一叙说了。

11.C m=(++j)+(k++);运行后i值变为2参与运算,k值仍为0参与运算,运算结束后k值变为1,故m的值为2。printf("%d,%d,%d",++m, j++, ++k);就是将m值自加一输出;将j值输出,输出后自加1,此处知不知道j最终值没关系;将k值自加1输出。故而输出3,2,2

12.C 对于a+=b/=a*=3; 我们要知道运算顺序,是从右向左,就是先将a*3的值附给a,此时a的值是6;再用b/a的值附给b也就是0,最后用a+b的值附给a这就是该表达式的结果即6。

13.A flag是个全局变量,按照程序运行推出,把34作为实参导入fun()函数后,执行语句k=2;且k<=n-1&&flag为真,故此运行if (n%k= = 0) flag = 0 ; } 而if成立,flag值变为0,k++后继续判断k<=n-1&&flag结果为假,结束循环,但此时flag的值就是0。

14.D 该题就是输出3个字符串中最大的那个字符串。

15.D 由于str[4]=’\0’导致若要将该数组按字符串输出时只输出到第一个'\0'结束,而strlen()也一样。

补充关于不同数据类型算术运算的方法:
进行算术运算的数据类型一般为:整型(int),长整型(long),短整型(short),字符型(char),实型<实型又分单精度实型(float)双精度实型(double)>
1.当运算双方是同类型的话,那么结果也是一样的类型,比如如果都为整型(int),那么结果也是整型 例:2/4=0;7/2=3;-5/3=-1 采取向0取整的原则。如果双方是float型,那么结果也是float型(小数部位是7个有效数字)
2.当运算双方不是同类型的话,那么机器就会自动地进行类型转换
double<---float
|
long
|
unsigned
|
int<---char,short
横向向左的箭头是必定转换的,如果数据类型是char的话必须先转换为int型,对于纵向的越往上级别越高,也就是两个数据间低等级的类型要先转化到那个高等级的数据类型,然后再进行计算,当然结果也就是那个高等级数据类型的形式.
3.还有种强制转化计算的方式,就是为了得到自己想要的数据类型,而将一个不符合标准的数据类型进行强制转换,比如float型的数据不能进行求余运算,所以必须要将他强制转化为int型方可运算,否则出错.例:float a=4.3;(int)a%2=1;
温馨提示:答案为网友推荐,仅供参考
第1个回答  2007-06-16
1C
2,B
3,C
4,D
5,D
6,A
7,D
8,D
9,B
10,C
11,C
12 C
13,A
14,D
15,D
个人答案加楼上诸多人之参考
第2个回答  2007-06-16
1.c
2.b
3.c
4.b
5.d
6.a
7.d
8.d
9.b
10.d
11.c
12.c
13.a
14.d
15.d
第3个回答  2007-06-16
保证质量!!
1,c
2,b
3,c
4,d
5,d
6,a
7,d
8,d
9,b
10,c
11,c
12,c
13,a
14,d
15,d
第4个回答  2007-06-16
晕~~
1。C
2。D
3。C
4。A
5。B
6。A
7。D
8。D
9。C
10。D
11。C
12。C
13。A
14。不清楚了
15。D
相似回答