习题2参考答案
一、基础题
1.若二维数组a有m列,则在a[i][j]前的元素个数为:
A)j*m+i                              B i*m+j
C)i*m+j-1                            D)i*m+j+1
B
2.在C语言中(以16位PC机为例),五种基本数据类型存储空间长度的排列顺序是:
A) char<int<long int<=float<double
B) char=int<long int<=float<double
C) char<int<long int=float=double
D) char=int=long int<=float<double
A
3.在C语言的变量类型说明中,int,char,float等类型的长度是:
A) 固定的          B) 由用户自己定义的
C) 任意的          D) continue语句执行过程与机器字长有关的
D
4. 设变量a是整型,f是实型,i是双精度型,则表达式10+'a'+i*f的数据类型是:
A) int型  B)float型  C) double  D)不确定
C
5.C语言中的变量名只能由字母,数字和下划线三种字符组成,且第一个字符:
A) 必须为字母            B) 必须为下划线
C) 必须为字母或下划线    D) 可以是字母,数字或下划线中的任意一种
C
6.设a=1,b=2,c=3,d=4,则表达式a<b?a:c<d?a:d的值是:
A) 4      B) 3    C) 2      D) 1
D
7.以下程序的输出结果是:
main()
{    int a=12, b=12;
      printf("%d,%d\n",--a,++b);
}
A) 10,10        B) 12,12        C) 11,10        D) 11,13
D
8.若有代数式(3ae)/(bc),则下面不正确的C语言表达式是:
A) a/b/c*e*3      B) 3*a*e/b/c      C) 3*a*e/b*c      D) a*e/c/b*3
C
9.已知x=43,ch='A',y=0,则表达式(x>=y&&ch<'B'&&!y)的值是:
A) 0            B) 语法错            C) 1            D) "假"
C
10.下面程序的输出结果是:
main()
{    int a=-1, b=4, k;
    k=(a++<=0)&&(!(b--<=0));
    printf("%d,%d,%d\n",k,a,b);
}
A) 1,1,2      B) 1,0,3      C) 0,1,2      D) 0,0,3
B
11.已知字母A的ASCII码为十进制的65,下面程序的输出是:
main()
{    char ch1,ch2;
    ch1='A'+'5'-'3';
    ch2='A'+'6'-'3';
    printf("%d,%c\n",ch1,ch2);
}
A) 67,D      B) B,C      C) C,D    D) 不确定的值
A
12.下面程序的输出的是
main()
{    int x=10,y=3;
    printf("%d\n",y=x/y);
}
A) 0    B) 1    C) 3      D) 不确定的值
C
二、程序设计题
1.从键盘上输入一个小写字母,编程输出其对应的大写字母以及它们的十进制ASCII码。
程序如下:
#include <stdio.h>
void main()
{
    char ch;
    printf("Please input a lower character:");
    ch=getchar();
    printf("Lower is %c, ASCII is %d\n",ch,ch);
    printf("Upper is %c, ASCII is %d\n",ch-32,ch-32);
}
2.一个水分子的质量约为3.0×10-23g,1夸脱水大约950g。编写一个程序,要求输入水的夸脱数,然后显示这么多水中包含多少水分子。
程序如下:
#include <stdio.h>
void main()
{
    double q,m;
    printf("Please input the quality of water (quart):");
    scanf("%lf",&q);
    m=q*950.0/(3.0e-23);
    printf("The moleculus of %f quart water is %e\n",q,m);
}
3.写出下列程序的运行结果:
#include <stdio.h>
void main()
{
    char c1=’a’,c2=’b’,c3=’c’,c4=’\101’,c5=’\116’;
    printf(“a%cb%c\tc%c\tabc\n”,c1,c2,c3);
    printf(“\t\b%c%c\n”,c4,c5);
}
运行结果:
aabb    cc      abc
AN
4.若a=3b=4c=5x=1.2y=2.4z=-3.6u=51274n=c1='a'c2='b'。写出程序,使之输出下面的结果。
a = 3 b = 4 c = 5
x = 1., y = 2., z = -3.
x + y = 3.60 y + z = -1.20 z + x = -2.40
u = 51274 n =
c1 = ‘a’ or c1 = 97
c2 = ‘b’ or c2 = 98
程序如下:
#include <stdio.h>
void main()
{
    int a=3,b=4,c=5;
    double x=1.2,y=2.4,z=-3.6;
    unsigned int u=51274,n=;
    char c1='a',c2='b';
    printf("a = %d b = %d c = %d\n",a,b,c);
    printf("x = %f, y = %f, z = %f\n",x,y,z);
    printf("x + y = %5.2f y + z = %5.2f z + x = %5.2f\n",x+y,y+z,z+x);

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。