Dotcpp  >  试卷列表  >  海南师范大学C语言程序设计期末试卷

海南师范大学C语言程序设计期末试卷


第1题

下面4个选项中,是不合法的用户标识符的选项是(  )。

共 1 分 

第2题

下面四个选项中,是不合法的用户标识符的选项是(   )。

共 1 分 

第3题

以下C程序运行结果是(   )。(注:□表示空格)

1
2
3
4
5
6
7
8
9
#include<stdio.h>
int main()
{
    long y=23456;
    printf("y=%3x\n",y);
    printf("y=%8x\n",y);
    printf("y=%#8x\n",y);
    return 0;
}
共 1 分 

第4题

已有如下定义和输入语句,若要求a1,a2,a3,c1,c2的值分别为10、20、30、A和B,当从第一列开始输入数据时,正确的数据输入方式是(   )。

1
2
3
int a1,a2;
char c1,c2;
scanf("%d%c%d",&a1,&c1,&a2,&c2);
共 1 分 

第5题

以下描述错误的是(   )。

共 1 分 

第6题

一个C程序的执行是从(   )。

共 1 分 

第7题

以下for循环的执行次数是(   )。

1
for(x=0,y=0;(y=123)&&(x<4);x++);
共 1 分 

第8题

C语言规定,简单变量作为实参时,他和对应形参之间的数据传递方式是(   )。

共 1 分 

第9题

下面程序段中。for循环执行的次数是(   )。

1
2
3
char *s="\ta\018be";
for(;*s!=\0;s++)
printf("*");
共 1 分 

第10题

以下程序中调用scanf函数给变量a输入数值的方法是错误的,其错误原因是(   )。

1
2
3
4
5
6
7
int main()
{
    int *p,*q,a,b;
    p=&a;
    printf("intput a:");
    scanf("%d",*p);
}
共 1 分 

第11题

以下程序可选出能被3整除且至少有一位是5的两位数,打印出所有这样的数及个数,请选择(   )。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
#include<stdio.h>
int sub(int k,int n)
{
    int a1,a2;
    a2=k/10;
    a1=k-________;
    if(k%3==0&&a2==5)||(k%3==0&&a1==5)
    {
        printf("%d",k);
        n++;
        return n;
    }
    else return -1;
}
int main()
{
    int i,k,n,m;
    for(k=10;k<=99;k++)
    {
        m=sub(k,n);
        if(m!=-1)
        n=m;
    }
    printf("\nn=%d",n);
    return 0;
}
共 1 分 

第12题

下面程序功能是从键盘输入一行字符,统计其中有多少个单词,单词之间用空格分隔,请选择填空(   )。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
#include<stdio.h>
int main()
{
    char s[80],c1,c2='';
    int i=0,num=0;
    gets(s);
    while(s[i]!='\0')
    {
        c1=s[i];
        if(i==0)
        c2='';
        else
        c2=s[i-1];
        if(_____)
        num++;
        i++;
        printf("There are %d words.\n",num);
        return 0; 
    }
}
共 1 分 

第13题

当运行以下程序时,从键盘输入:

ab<回车>

C<回车>

def<回车>

则下面程序的运行结果是(   )。

1
2
3
4
5
6
7
8
9
10
11
#include<stdio.h>
#define N6
int main()
{
    char c[N];
    int i=0;
    for(;i<N;c[i]=getchar(),i++);
    for(i=0;i<N;i++)
    putchar(c[i]);
    return 0;
}
共 1 分 

第14题

以下程序运行结果是(   )。

1
2
3
4
5
6
7
8
9
#include<stdio.h>
int main()
{
    int a,b,d=241;
    a=d/100%9;
    b=(-1)&&(-1);
    printf("%d,%d",a,b);
    return 0;
}
共 1 分 

第15题

下面程序的功能是将小写字母变成对应的大写字母后的第二个字母,其中y变成A,z变成B,请选择填空(   )。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
#include<stdio.h>
int main()
{
    char c;
    while((c=getchar())!='\n')
    {
        if(c>='a'&&c<='z')
        c=c-32+2;
        if(c>'Z')
        ________;
    }
    printf("%c",c);
    return 0;
}
共 1 分 

第16题

请阅读程序段:

1
2
int x=1;
printf("%d\n",-x);

上面程序段的输出结果是_________。

共 1 分 

第17题

C语言源程序的基本单位是_________。

共 1 分 

第18题

在C语言中,输入操作是由库函数_____________完成的,输出操作是由库函数__________完成的。

共 2 分 

第19题

若有定义语句:

1
2
int b=7;
float a=2.5,c=4.7;

则表达式:

1
a+(int)(b/3*(int)(a+c)/2)%4

的值为________。

共 1 分 

第20题

若a是int型变量,则表达式(a=4.5,a*2),a+6的值为___________。

共 1 分 

第21题

请填空:

建立如图所示存储结构所需说明语句是___________。

建立如图所示为变量a输入数据的输入语句是___________。

建立如图所示存储结构所需的赋值语句是___________。

存储结构

共 3 分 

第22题

执行下面程序段后,k的值为________。

1
2
3
4
5
6
7
k=1;
n=263;
do
{
   k*=n%10;
   n/=10;
}while(n);
共 1 分 

第23题

假设变量a和b均为整型,以下语句可以不借助任何变量把a、b中的值进行交换,请填空。

1
2
3
a+=_______;
b=a-______;
a-=_______;
共 3 分 

第24题

若有以下定义和语句,为使变量c1得到字符‘A’,变量c2得到字符‘B’,正确的输入形式是________。

1
2
char c1,c2;
scanf("%4c%4c",&c1,&c2);
共 1 分 

第25题

字符串“ab\n\\012\\\”的长度是________。

共 1 分 

第26题

以下程序运行结果是___________。

1
2
3
4
5
6
7
#include<stdio.h>
int main()
{
    int m=177;
    printf("%o\n",m);
    return 0;
}
共 1 分 

第27题

以下程序输出结果是___________。

1
2
3
4
5
6
7
8
#include<stdio.h>
int main()
{
    int a=325;
    double x=3.1415926;
    printf("a=%+06dx=%+e\n",a,x);
    return 0;
}
共 1 分 

第28题

若运行一下程序时输入:-2<回车>,则程序的输出结果是__________。

1
2
3
4
5
6
7
8
9
#include<stdio.h>
int main()
{
    int a,b;
    scanf("%d",&a);
    b=(a>=0)?a:-a;
    printf("b=%d",b);
    return 0;
}
共 1 分 

第29题

某服装店经营套服且单件出售,若一次购买不少于50套,则每套80元;若不足50套,则每套90元;只买上衣每件60元;只买裤子每条45元,以下程序功能是读入所买上衣c和裤子t的件数,计算应付款m。请填空。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
#include<stdio.h>
int main()
{
    int c,t,m;
    printf("int the number of coat and trousers you want to buy:\n");
    scanf("%d%d",&c,&t);
    if(___1___)
    if(c>=50)
    m=c*80;
    else 
    m=c*90;
    else if(___2___)
    if(t>=50)
    m=t*80+(c-t)*60;
    else 
    m=t*90+(c-t)*60;
    else if(___3____)
    m=c*80+(t-c)*45;
    else
    m=c*90+(t-c)*45;
    printf("%d",m);
    return 0;
}
共 3 分 

第30题

下面程序的功能是用公式:1/6=1/12+1/22+1/32+1/42求的近似值,直到最后一项的值小于10-6为止。请填空。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
#include<stdio.h>
#include<math.h>
int main()
{
    long i=1;
    ___1___ pi=0;
    while(i*i<=10e+6)
    {
        pi=___2___;
        i++;
    }
    pi=sqrt(6.0*pi);
    printf("pi=%10.6lf\n",pi);
    return 0;
}
共 2 分 

第31题

以下程序的运行结果是输出如下图形。请填空。

输出图形

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
#include<stdio.h>
void a(int i)
{
    int j,k;
    for(j=0;j<=7;j++)
    printf(" ");
    for(k=0;k<___1___;k++)
    printf("*");
    printf("\n");
}
int main()
{
    int i;
    for(i=0;i<3;i++)
    ____2____;
    for(i=3;i>=0;i--)
    ____3____;
    return 0;
}
共 3 分 

第32题

以下程序时将矩阵a、b的和存入矩阵c中并按矩阵形式输出。请填空。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
#include<stdio.h>
int main()
{
    int a[3][4]={{3,-2,7,5},{1,0,4,-3},{6,8,0,2}};
    int b[3][4]={{-2,0,1,4},{5,-1,7,6},{6,8,0,2}};
    int i,j,c[3][4];
    for(i=0;i<3;i++)
    for(j=0;j<4;j++)
    c[i][j]=___1____;
    for(i=0;i<3;i++)
    {
        for(j=0;j<4;j++)
        printf("%3d",c[i][j]);
        ___2___; 
    }
    return 0;
}
共 2 分 

第33题

以下程序将数组a中的数据按逆序存放,请填空。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
#include<stdio.h>
#define M8
int main()
{
    int a[M],i,j,t;
    for(i=0;i<M;i++)
    scanf("%d",a+i);
    i=0;j=M-1;
    while(i<j)
    {
        t=*(a+i);
        ____1___;
        *(__2__)=t;
        i++;
        j--;
    }
    for(o=0i<M;i++)
    printf("%3d",*(a+i));
    return 0;
}
共 2 分 

第34题

已有变量定义语句double=5.0,p; int n=5;和函数调用语句p=mypow(a,n);用以求a的n次方,请编写double mypow(double x,int y)函数。


参考答案:

1
2
3
4
5
6
7
8
9
double mypowe(double x,int y)
{
    int i;
    double p;
    p=1.0;
    for(i=1;i<=y;i++)
    p=p*x;
    return p;
}
共 0 分 

第35题

用switch语句编程实现以下函数关系:

函数关系


参考答案:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
#include<stdio.h>
int main()
{
    float x;
    int y;
    printf("\n input x:");
    scanf("%f",&x);
    switch (x<0) 
    {
        case 1:
            y=-1;
            break;
        case 0:
            switch(x==0)
            {
                case 1:y=0;
                break;
                default:y=1;
            }
    }
    printf("\n y=%d",y);
    return 0;
}
共 0 分