题型练习

  • 格式:doc
  • 大小:41.00 KB
  • 文档页数:9

一、选择题
1.下列说法正确的是。

A)main函数必须放在C程序的开头
B)main函数必须放在C程序的最后
C)main函数可以放在C程序的中间
部分,但在执行C程序时是从程序
开头执行的
D)main函数可以放在C程序的中间
部分,但在执行C程序时是从main
函数开始的
2.在下面几组数据类型中, 全为最常用的基本数据类型的是哪一组:。

A)整型实型字符型
B)整型数组指针
C)数组结构体共用体
D)指针逻辑型空类型
3.若有说明语句:char c= …\64‟ ; 则变量C包含:。

A)1个字符B)2个字符
C)3个字符
D)说明不合法,C值不确定
4.设有如下定义和执行语句,其输出结果为:。

int a=3,b=3;
a = --
b + 1; printf(“%d %d”,a,b); A)3 2 B)4 2 C)2 2 D)2 3
5.C语言中,运算对象必须是整型数的运算符是。

A)% B)\ C)% 和\ D)**
6.能正确表示x的取值范围在[0,100]和
[-10,-5]内的表达式是。

A)(x<=-10)||(x>=-5)&&(x<=0)||(x>=100)
B)(x>=-10)&&(x<=-5)||(x>=0)&&(x<=100)
C)(x>=-10)&&(x<=-5)&&(x>=0)&&(x<=100)
D)(x<=-10)||(x>=-5)&&(x<=0)||(x>=100)
7.程序段如下
int k=0;
while(k++<=2);printf("last=%d\n", k);
则执行结果是last=。

A)2 B)3
C)4 D)无结果
8.下面有关for循环的正确描述是。

A)for循环只能用于循环次数已经确定的情况
B)for循环是先执行循环体语句,后判断表达式
C)在for循环中,不能用break语句跳出循环体
D)for循环的循环体语句中,可以包含多条语句,但必须用花括号括起来9.若二维数组a有m列,则a[I][j]元素前的数组元素个数为:。

A)j*m+i B)i*m+j C)i*m+j-3 D)i*m+j+1
10.设有两字符串“Beijing”、“China”分别存放在字符数组str1[10],str2[10]中,下面语句中能把“China”连接到“Beijing”之
后的为:。

A)strcpy(str1,str2);
B)strcpy(str1, “China”);
C)strcat(str1,“China”)
D)strcat(“Beijing”,str2);
二.读程序写结果:
1.main( )
{int a=10,b=20,c=30;
if(a>b)
if(a>c) printf(″a=%d\n″,a);
else printf(″b=%d\n″,b);
printf(″c=%d\n″,c);
}
2.main()
{int i=18,j;
j=i%3;
switch (j)
{ case 1:
case 2:
printf(“%d\n”,j); break;
default: printf(″%d\n″,i);
}
}
三.填空题
1.对与数组a[m][n]来说,使用数组的某个元素时,行下标的最大值是,列下标的最大值是。

(0级
2.定义变量时,如果对数组元素全部赋初值,则数组长度。

(0级)
3.在C语言中,数组的首地址是。

(0级)
4.数组名定名规则和变量名相同,遵循定名规则。

(0级)
5.break语句只能用于语句和语句中。

(0级)
四.程序填空题
1.下面程序可求出1~1000的自然数中所有的完数(因子和等于该数本身的数)请填空。

main( )
{ int m, n, s;
for(m=2;m<1000;m++)
{ ____(1)____;
for(n=1;n<=m/2;n++)
if(__(2)___) s+=n;
if(__(3)___) printf(“%d\n”, m); } }
2..用起泡法对十个数由大到小排序。

main( )
{ int a[11], i, j, t;
printf(“input 10 numbers: \n”);
for(i=1;i<11;i++)
scanf(“%d”,&a[i]);
printf(“\n”);
for (j=1;j<=9;j++)
for(i=1; _(1)__; i++)
if (__(2)___)
{t=a[i]; a[i]=a[i+1]; __(3)__ ;} printf(“the sorted numbers: \n”);
for ( i=1; i<11; i++)
printf(“%d”,a[i]);
}
3.以下程序可求出所有水仙花数(指3位正整数中各位数字立方和等于该数本身,如153=13+53+33),请填空。

(往届试题)
main( )
{ int x, y ,z, a[10], m, i=0;
printf(“shui xian huan shu :\n”);
for(__(1)____;m<1000;m++)
{
x=m/100;
y= ____(2)____;
z=m%10;
if(m==x*x*x+y*y*y*y+z*z*z)
{___(3)_____; i ++; }
}
for( x=0;x<i ; x++)
printf(“%6d”,a[x] ) ;
}
五.编程题
1.编一程序,将2000年到3000年中的所有闰年年份输出并统计出闰年的总年数,要求每10个闰年放在一行输出。

(1级)
2 .编写一程序,求1-3+5-7+.........-99+101的值。

(1级)。