课程试卷1 答案
一、单项选择题(每题2分,15题共30分)
1.C语言是一种( C )的程序设计语言。
A.面向对象    B.可视化    C.面向过程    D.组件导向
2.C程序一般应含( C )两方面的描述。
A.语句和算法        B.定义和数据
C.数据和算法        D.开发环境和语句
3.下列各选项中,( A )是合法的用户标识符。
Aab    B3day    C.day-3    D#abc
4.已知字母b的ASCII码为98,如ch为字符型变量,则表达式ch= 'b' +'5 '-'2 '的值为( B )。
A.e    B.d    C.100    D.102
5.下列程序的运行结果是( A )。
int main( )
{
    char s[20]="China";
    printf("%d\n",strlen(s));
    return 0;
}A.5    B.6    C.20    D.无显示
6.当调用函数时,实参是一个数组名,则向函数传递的是( C )。
A.数组的长度        B.数组每一个元素的地址   
C.数组的首地址        D.数组每个元素中的值
7.语句 for( i =0;i++<3;);执行后,变量i的值为( C )。
A.2    B.3    C.4    D.5
8.数字字符0的ASCII值为48,若有以下程序,其运行后的结果是( C )。
int main()
{
    char a='1',b='2';
    printf("%c,",b++);
    printf("%d\n",b-a);
    return 0;
}
A3,2    B50,2    C2,2    D2,50
9.以下叙述中错误的是( D )。
A.对于double型数组,不可以直接用数组名对数组进行整体输入或输出    B.数组名代表的是数组所占存储区的首地址,其值不可改变
C.程序执行中,元素的下标超出所定义的范围时,不一定有出错信息
D.可以通过赋初值的方式确定数组元素的个数
10.已有定义:char a[]="xyz",b[]={'x','y','z'};,以下叙述中正确的是( C )。
A.数组a和b的长度相同    B.a数组长度小于b数组长度
C.a数组长度大于b数组长度    D.上述说法都不对
11.若有以下程序,其运行后的结果是( B )。
int main()
{
    int a,b,d=25;
    a=d/10%9;
    b=a&&(-1);
    printf("%d,%d\n",a,b);
    return 0;
}
A.6,1    B.2,1    C.6,0    D.2,0
12.若有以下程序,其运行后的结果是( B )。
int main()
{
    char a[7]="a0\0a0\0";
    int i,j;
    i=sizeof(a);
    j=strlen(a);
    printf("%d %d\n",i,j);
    return 0;
}
A.2 2    B.7 2    C.7 6    D.6 2
13.若有以下程序,程序运行后的输出结果是( B )。
void prt(int *m,int n)
{
    int i;
    for(i=0;i<n;i++,m++)
        (*m)++;
}
int main()
{
    int a[]={1,2,3,4,5},i;
    prt(a,5);
    for(i=0;i<5;i++)
        printf("%d,",a[i]);
    return 0;
}
A1,2,3,4,5,    B2,3,4,5,6,    C3,4,5,6,7,    D2,3,4,5,1,
14.若有以下程序,程序运行后的输出结果是( B )。
int main()
{
    int a=1,b;
    for(b=1;b<=10;b++)
    {
        if(a>=8)
            break;
        if(a%2==1)
        {
            a+=5;continue;
        }
        a-=3;
    }
    printf("%d\n",b);
    return 0;
}
A.310种常用的程序设计语言    B.4    C.5    D.6
15.下列4个函数中,能实现交换变量值的功能是( C )。
A.void fun_a(int x,int y) {int *p; *p=x;x=y;y=*p; }
B.void fun_b(int *x,int *y) {int *p; *x=*y;*y=*x; }
C.void fun_c(int *x,int *y) {*x=*x+*y; *y=*x-*y; *x=*x-*y; }
D.void fun_d(int x,int y) {int p; p=x;x=y;y=p; }
二、程序填空题(每题4分,5题共20分)
1.下面程序的功能是计算1-3+5-7+ …… -99+101的值。
int main()
{
    int i,t=1,s=0;
    for(i=1;i<=101;i+=2)
    {
          t=t*i  ;
        s=s+t;
          t=t>0?-1:1  ;
    }
    printf("%d\n",s);
    return 0;
}
2.有以下程序段:
    s=1.0;
    for(k=1;k<=n;k++)
        s=s+1.0/(k*(k+1));
    printf("%f\n",s);
填空完成下述程序,使之与上述程序的功能完全相同。
    s=0.0;
      d=1  ;
    k=0;
    do
    {
        s=s+d;
          k++  ;
        d=1.0/(k*(k+1));
    }while(  k<=n  );
    printf("%f\n",s);
3.下面程序的功能是从键盘上输入若干学生的学习成绩,统计并输出最高成绩和最低成绩,当输入为负数时结束输入。
int main()
{
    float x,amax,amin;
    scanf("%f",&x);
    amax=x;
    amin=x;
    while(  x>=0  )
    {
        if(x>amax)
            amax=x;
        if(  x<amin  )
            amin=x;
        scanf("%f",&x);
    }
    printf("\namax=%f\namin=%f\n",amax,amin);
    return 0;
}
4.下面函数是将形参x的值转换为二进制数,所得的二进制数放在一个一维数组中,二进制数的最低位放在下标为0的元素中。
void fun(int x,int b[])
{
    int k=0,r;
    do
    {
        r=x%  2  ;
        b[k++]=r;
        x/=  2  ;
    }while(x);

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