测试题

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]);

 

以上是关于测试题的主要内容,如果未能解决你的问题,请参考以下文章

如何检查字母是字母还是数字?

如果其他条件产生无限循环,则继续语句[关闭]

嵌套循环---字母金字塔

循环打印菱形字母

在 Bash 中循环遍历字母

8086汇编将小写字母转换为大写字母(含提示信息,无限循环,按“!”退出程序)