测试题
Posted 金石不渝
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了测试题相关的知识,希望对你有一定的参考价值。
一、 选择题:(每题3分,共45分)
1、C语言中的标识符只能由字母、数字和下划线三种字符组成,且第一个字符(a)。
A)必须为字母或下划线。 B)必须为下划线。
C)必须为字母 D)可以是字母、数字和下划线中的任一种字符。
2、下列运符中优先级最高的是( b )
A) ++ B) () C) ?: D)||
3、C语言规定:在一个源程序中,main函数的位置( c )
A) 必须在最开始
B) 必须在系统调用的库函数的后面
C) 可以任意
D) 必须在最后
4、一个C语言程序是由( b )
A) 一个主程序和若干子程序组成
B) 函数组成
C) 若干过程组成
D) 若干子程序组成
5、 代表换行的转义字符是 ( a )
A)'\\n' B)'\\\\' C)'\\0' D)'\\''
6、下面一段程序是小写字母转换成大写字母的程序。
void main()
char c1;
c1='a';
( ) ;
printf("%c ",c1);
那么 括号处应该填写( c ) A是65 a是 97
a) c1=c1+32 b)c1=c1-64 c) c1=c1-32 d) c1=c1+64
7、设有程序段
int k=10;
while(k=0) k=k-1;
则下面描述中正确的是( c )
a) while 循环执行10次 b)循环是无限循环
c)循环体语句一次也不执行 d) 循环体语句执行一次
8、逻辑运算符两侧运算对象的数据类型( a )
a)只能是0或1 b)只能是0或非0正数
c)只能是整型或字符型数据 d) 可以是任何类型的数据
9、语句while(!E);中表达式!E等价于( a )
a) E==0 b) E!=1 c)E!=0 d)E==1
10、以下对一维a的正确说明是(d)
a) int a(10) ; b)int n=10,a[n]; c) int n; scanf(“%d”,&n); int a[n];
d) int a[10];
11、在c语言中,引用数组元素时,引用数组元素时,其数组下标的数组类型允许是(c)
a) 整型常量 a[9] b) 整型表达式 i=1 j=2 a[i+j] c) 整型常量或整型表达式 d) 任何类型的表达式
12、以下能对一维数组a进行正确初始化的语句是( c ) 二维数组的一维数组可以不给出
a) int a[10]=(0,0,0,0,0); b) int a[10]=; 没有初始化 c) int a[]=0; d)int a[10]=10*1;
13、以下对二维数组a的正确说明是( c )
a) int a[3,4]; b) float a(3,4); c) double a[3][4]; d) float a(3)(4);
14、若有说明:int a[10]; 则对a数组元素的正确应用是(d)
a) a[10] b)a[3,5] c)a(5) d)a[0]
15、以下能对二维数组a进行正确初始化的语句是( b )
a) int a[2][]=1,0,1,5,2,3 ; b) int a[][3]=1,0,1,5,2,3 ;
c) int a[2][4]=1,0,1,5,3,6 ; d) int a[][3]=1,0,1,,5,3 ;
二、 填空题:(共10个空,每空4分,共40分)
1、输出单个字符
#include <stdio.h>
void main()8
char a,b,c;
a='B';b='O';c='Y';
putchar(a);putchar(b);putchar(c);putchar('\\n');
运行结果是( BOY ) 。2、有下面一段程序。
#include <stdio.h>
void main()
int i=97;
printf("%c,%d\\n",i,i);
运行结果为( a ,97 )。
3、用scanf函数输入数据
#include <stdio.h>
void main()
int a,b,c;
scanf("a=%d,b=%d,c=%d",&a,&b,&c);
printf("%d,%d,%d\\n",a,b,c);
a,b,c分别为3,4,5, 请问在键盘上面怎么输入数据(a=3,b=4,c=5)
在scanf中要赋予值
4、这个程序是:输入三角形的三边长,求三角形的面积
#include <stdio.h>
#include < >
void main()
float a,b,c,s,area;
scanf("%f,%f,%f",&a,&b,&c);
s=1.0/2*(a+b+c); //这里用1.0的目的是保证s为float型
area=sqrt(s*(s-a)*(s-b)*(s-c));
printf("a=%7.2f,b=%7.2f,c=%7.2f,s=%7.2f\\n",a,b,c,s);
printf("area=%7.2f\\n",area);
程序中用了数学函数,所以你要在程序开头加一条#include命令,把头文件( math.h )包含到程序中来。
5、 输入两个数,然后按照由大到小的次序输出。
void main()
int x,y,z;
scanf("%f,%f",&x,&y);
if(x<y)
z=x;x=y;y=z________ // 这一步是通过z将x,y的值进行交换
printf("%d ,%d",x,y);
( z=x;x=y;y=z; )
6、 有程序片段:
switch(grade)
case ‘A’:printf(“85-100\\n”);break;
case ‘B’:printf(“70-84\\n”);break;
case ‘C’:printf(“60-69\\n”);break;
case ‘D’:printf(“60\\n”);break;
default: printf(“error!\\n”);break;
若grade的值为’C’,则输出的结果是( 60-69 )。
7、用do-while语句,求1到100的和。
#include <stdio.h>
void main()
int i,sum=0;
i=1;
do
sum=sum+i;
( A i++ );
while( i<=100 );
printf("%d\\n",sum);
A处应该填( i++或者i=i+1 ),B处应该填(i<=100 或i<101 )。
8、以下程序将一个2维数组行和列元素互换,存到另一个二维数组中去。
#include <stdio.h>
void main()
int a[2][3]=1,2,3,4,5,6;
int b[3][2],i,j;
printf("array a :\\n");
for(i=0;i<=1;i++)
for(j=0;j<=2;j++)
printf("%5d",a[i][j]);
( A ) ;
printf("\\n");
printf("array b:\\n");
for(i=0;i<=2;i++)
for(j=0;j<=1;j++)
printf("%5d",b[i][j]);
printf("\\n");
A处应该填写( b[j][i]=a[i][j] )
9、输出一个字符串
#include <stdio.h>
void main()
char c[10]='I',' ','a','m',' ','a',' ','b','o','y';
int i;
for(i=0;i<10;i++)
printf("%c",c[i]);
printf("\\n");
运行结果为:(I am a boy)
三、 编程题(15分):
用起泡法或者选择法对10个数排序(由小到大)。要求从键盘输入这10个数。
起泡法:
#include <stdio.h>
void main()
int a[11];
int i,j,t;
printf("input 10 number:\\n");
for(i=1;i<11;i++) //a[0]这里不使用
scanf("%d",&a[i]);
printf("\\n");
for(j=1;j<=9;j++) //重复9次
for(i=1;i<=10-j;i++)
if(a[i]>a[i+1])
t=a[i];a[i]=a[i+1];a[i+1]=t;
printf("the sorted numbers :\\n ");
for(i=1;i<11;i++)
printf("%d ",a[i]);
printf("\\n");选择法:
#include <stdio.h>
#include <math.h>
void main()
int i,j,min,temp,a[11];
printf("Enter data:\\n");
for(i=1;i<=10;i++)
printf("a[%d]=",i);
scanf("%d",&a[i]); //输入10个数
printf("\\n");
for(i=1;i<=10;i++)
printf("%5d",a[i]); //输出这10个数
printf("\\n");
for(i=1;i<=9;i++) //以下8行是对10个树排序
min=i;
for(j=i+1;j<=10;j++)
if (a[min]>a[j]) min=j;
temp=a[i];
a[i]=a[min];
a[min]=temp;
printf("\\nThe sorted numbers:\\n");
for(i=1;i<=10;i++) //输出已经排好序的10个数
printf("%5d",a[i]);
以上是关于测试题的主要内容,如果未能解决你的问题,请参考以下文章