c语言题目

一、填空题
1.说明char s1[]=”china”, s2[10]; 要将s1的值复制到s2中的正确语句是 。
2.函数的形式参数存放在内存的__ __ __区,作用范围是_ __。
3.已 知a=3,b=4,c=5,则表达式!(a-b)+c-1&&b+c/2的值是 。
4.局部变量的三种存储方式是 、 和 。
5. C语言中while和do-while循环的主要区别是 的循环体至少无条件执行一次。
二、选择题
1.一个C语言程序是由 组成的。
A) 主程序 B) 子程序 C) 函数 D) 过程
2.在以下关于C语言的不严格的叙述中,错误的说法是 。
A) 在C语言中不用区分大写字母和小写字母,大小写字母意义相同
B) C语言中的关键字是一些具有固定含义的标识符
C) C语言程序是以函数为基本组成单位
D) 同一个运算符号在不同的场合可以有不同的含义
3.下列不属于C语言关键字的是 。
A) default B) register C) enum D) external
4.若用数组名作为函数调用时的实参,则传递给形参的是 。
A) 数组首地址 B) 数组的第一个元素值
C) 数组中全部元素的值 D) 数组元素的个数
5.为判断两个字符串s1和s2是否相等,应使用 _ _。
A) if ( s1==s2 )
B) if ( s1=s2 )
C) if (strcpy(s1,s2))
D) if ( strcmp(s1,s2)==0 )
三、写程序运行结果
1. #include <stdio.h>
void main ( )
{ int n[3][3], i, j;
for ( i=0; i<3; i++ )
for ( j=0; j<3; j++ )
n[i][j] = i+j;
for ( i=0; i<2; i++ )
for ( j=0; j<2; j++ )
n[i+1][j+1] += n[i][j];
printf (“%d\n”, n[i][j]);
}
2. #include <stdio.h>
void main()
{ int i,j,k;
for(i=1; i<=4;i++)
{ for(j=1; j<=(4-i); j++)
printf(“ ”);
for(k=1;k<=(2*i-1)+5;k++)
{ if(k<=5) printf(“ ”);
else printf(“*”);
}
printf(“ \n”);
}
}
四、程序填空题
1.程序读入20个整数,统计非负数个数,并计算非负数之和。
#include <stdio.h>
void main ( )
{ int i, a[20], s, count;
s=0;count=0;
for ( i=0; i<20; i++ )
scanf("%d", __① _);
for ( i=0; i<20; i++ )
{ if ( a[i]<0 )
__②__;
s += a[i];
count++;
}
printf ("s=%d\t count=%d\n", s, count);
}
2. 下面程序可求出矩阵a的两条对角线上的元素之和。
#include <stdio.h>
void main ( )
{ int a[3][3]={1,3,6,7,9,11,14,15,17},sum1=0,sum2=0,I,j;
for(i=0;i<3;i++)
for(j=0;j<3;j++)
if( ③ ) sum1=sum1+a[i][j];
for(i=0;i<3;i++)
for(j=2;j>=0;j--)
if( ④ ) sum2=sum2+a[i][j];
printf(“sum1=%d,sum2=%d\n”,sum1,sum2);
}

五、编程题
将数组中的n个整数(n由键盘输入)逆序存放,程序中不使用辅助数组。例如:原来顺序为1,3,5,7,9,要求改为9,7,5,3,1。

第1个回答  2009-05-15
太多了~
把最后的编程题贴出来吧
int reverse(int* array, int len)
{
int tmp = array[0];
int* pStart = array;
int* pEnd = array + len - 1;
while (pStart != pEnd)
{
tmp = *pStart;
*pStart = *pEnd;
*pEnd = tmp;
++pStart;
--pEnd;
}
return 0;
}
第2个回答  2009-05-16
太多了!看的头昏!
第3个回答  2009-05-20
一、1:strcpy(b,a);
2:静态,本函数结束
3:1
4:自动型、寄存器型和静态型
5:do_while先进行循环再判断条件,而 while 先判条件再循环。就是不管条件成不成立do_while都进行一次循环,而while不能。
二、1:C
2:A
3:D
4:A
5:D
三、1:6
2:
*
***
*****
*******
四、1:&a[i]、continue、
2:i==j、 i+j==2
五、main()
{ int i,n,a[100];
for(i=n;i>0;i--)
scanf("%d",&a[i]);
}本回答被提问者采纳
第4个回答  2009-05-16
晕 这样的题耐心做就ok啦 你绝对能做出来

相关了解……

你可能感兴趣的内容

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 非常风气网