Dotcpp  >  试卷列表  >  普洱学院C语言程序设计期末试卷

普洱学院C语言程序设计期末试卷


第1题

下面四个选项中,是C语言关键字的选项是(  )。

共 3 分 

第2题

若有代数|x3+log10x|,则正确的C语言表达式是(  )。

共 3 分 

第3题

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

共 3 分 

第4题

以下程序叙述正确的是(  )。

共 3 分 

第5题

以下能对二维数组a进行正确的初始化的语句是(  )。

共 3 分 

第6题

设有如下程序:

1
2
3
4
5
6
7
#include<stdio.h>
int main()
{
    char ch1='A',ch2='a';
    printf("%c\n",(ch1,ch2));
    return 0;
}

则以下叙述正确的是(  )。

共 3 分 

第7题

以下库函数strcpy(char*p1,char*p2);功能不相等的程序段是(   )。

共 3 分 

第8题

在一个C源程序文件中,若要定义一个只允许本源文件中所有函数使用的全局变量,则该变量需要使用的存储类别是(   )。

共 3 分 

第9题

以下程序段(   )。

1
2
3
4
x=-1;
do{
    x=x*x;
}while(x!1);


共 3 分 

第10题

以下正确的描述是(   )。

共 3 分 

第11题

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

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;
}
共 3 分 

第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;
    }
}
共 3 分 

第13题

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

1
2
3
4
5
6
7
8
9
10
int a[6][6],i,j;
for(i=1;i<=6;i++)
for(j=1;j<=6;j++)
a[i][j]=(i/j)*(j/i);
for(i=1;i<6;j++)
{
    for(j=1;j<6;j++)
    printf("%2d",a[i][j]);
    printf("\n");
}
共 3 分 

第14题

以下程序的正确运行的结果(   )。

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
27
28
29
30
31
32
#include<stdio.h>
#define MAX10
void sub2(),sub1(),sub3(int *A)
int a[MAX],i;
int main()
{
    printf("\n");
    sub1();
    sub3(a);
    sub2();
    sub3(a);
    return(0);
}
void sub2()
{
    int a[MAX],i,max;
    max=5;
    for(i=0;i<max;i++)
    a[i]=i;
}
void sub1()
{
    for(i=0;i<MAX;i++)
    a[i]=i+i;
}
void sub3(int a[])
{
    int i;
    for(i=0;i<MAX;i++)
    printf("%d",a[i]);
    printf("\n");
}
共 3 分 

第15题

以能正确计算1*2*3*.....*10的程序段是(   )。

共 3 分 

第16题

为了建立如图所示的存储结构(即每个结点两个域,data是数据域,next是指向结点的指针域),请将定义补充完整。

存储结构

1
2
3
struct s{char data;
      _______
     }node;
共 3 分 

第17题

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

共 3 分 

第18题

在C语言源程序中,一个变量代表___________。

共 3 分 

第19题

若是a是int型变量,且a的初值为6,则执行表达式a+=a-=a*a后a的值为___________。

共 3 分 

第20题

若有定义int b=7;float a=2.5;c=4.7;则表达式a+(int)(b/3*(int)(a+c)/2)%4的值为___________。

共 3 分 

第21题

请读程序段

1
2
3
4
int a=1,b=2;
if(a&b)
printf("***\n");
else printf("$$$\n");

以上程序段的输出结果是__________。

共 3 分 

第22题

下面程序段中循环体的执行次数是__________。

1
2
3
4
5
a=10,b=0;
do{
    b+=2;a=2+b;
  }
while(a>=0);
共 3 分 

第23题

设有以下定义:

1
2
3
4
5
6
#define SWAP(T,X,Y)
{
  T=X;
  X=Y;
  Y=T;
}

以下程序段将通过调用宏实现变量x和y内容的交换,请填空。

1
2
Double x=2.5,y=6.4,z;
SWAP(_________);


共 3 分 

第24题

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

共 3 分 

第25题

以下程序段通过移动指针变量m,给如图所示连续动态存储单元赋值,请填空。(假设程序段中的所有变量均已正确说明。)

1727628129631602.jpg

1
2
for(k=0;k<10;k++,m++)
scanf("%d",________)
共 3 分 

第26题

已知字母A的ASCII码值为65,以下程序的输出结果是__________。

1
2
3
4
5
6
7
8
9
#include<stdio.h>
int main()
{
    char a,b;
    a='A'+'4'-'3';
    b='A'+'6'-'2';
    printf("a=%d,b=%c\n",a,b);
    return 0;
}
共 3 分 

第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;
}
共 3 分 

第28题

以下程序时应用递归算法求某数a的平方根,请填空,求平方根的迭代公式如下:

1727677792474081.jpg

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
#include<stdio.h>
#include<math.h>
double mysqrt(double a,double x0)
{
    double x1,y;
    x1=___1___;
    if(fabs(x1-x0)>0.00001)
    y=mysqrt(___2___);
    else y=x1;
    return y;
    int main()
    {
        double x;
        printf("Enter x:");
        scanf("%lf",&x);
        printf("The sqrt of %f=%f\n",x,mysqrt(x,1.0));
        return (0);
    }
}
共 3 分 

第29题

以下函数fun的功能是:统计用数字0~9可以组成多少个位值相同的3位偶数,请填空。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
#include<stdio.h>
int fun()
{
    int n=0,i,j,k;
    for(i=1;i<=9;i++)
    for(k=0;k<=8;k__1__)
    for(j=0;j<=9;j++)
    if(__2__)
    n++;
    return n;
}
int main()
{
    n=fun();
    printf("n=%d\n",n);
    return (0);
}
共 3 分 

第30题

下面程序的运行结果是_________。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
#include<stdio.h>
int main()
{
    int i,t,sum=0;
    for(t=i=1;i<=10; )
    {
        sum+=t;
        ++i;
        if(i%3==0)
        t=-i;
        else
        t=i;
    }
    printf("sum=%d",sum);
    return 0;
}
共 3 分 

第31题

下面程序运行结果是_______。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
#include<stdio.h>
int main()
{
    int i=0;
    char a[]="abm",b[]="aqod",c[10];
    while(a[i]!='\0'&&b[i]!='\0')
    {
        if(a[i]>b[i])
        c[i]=a[i]-32;
        else
        c[i]=b[i]-32;
        ++i; 
    }
    c[i]='\0';
    puts(c);
    return 0;
}
共 2 分 

第32题

以下程序的功能是判断输入的某个年份是否是闰年,请填空。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
#include<stdio.h>
int main()
{
    int y,f;
    scanf("%d",&y);
    if(y%400==0)
    f=1;
    else if(__1___)
    f=1;
    else
    ___2___;
    if(f)
    printf("%d is",y);
    else printf("%d is not",y);
    printf("a leap year\n");
    return 0;
}
共 3 分 

第33题

有如下数学公式:

数学公式

已知梯形法求积分公式为:

数学公式

(其中n为积分区间的等分数)函数trap是一个利用梯形法求定积分的通用求积分函数。double pexp( )是计算公式一的函数,double poly( )是计算公式二的函数,请根据以下调用语句,完成trap函数中的填空。

调用语句:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
y1=trap(pexp,0.0,1.0)/sqrt(2.0*3.1416);
y2=trap(sin,0.0,3.1416/2.0)/2.0;
y3=trap(polyt,0.0,4.0);
double trap(__1___,double a,double b)
{
    double t,h;
    int i,n=1000;
    t=((*fun)(a)+(*fun)(b))/2.0;
    h=fabs(a-b)/(double)(n);
    for(i=1;i<=n-1;i++)
    t+=__2__;
    t*=h;
    return t;
}
共 3 分 

第34题

定义一个带参得宏,用以判断整数n是否能被x整除,编写程序,从终端输入一个整数,调用宏验证其是否能同时被3和7整除。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
答:
/*判断整数n是否能被x整除*/
#include<stdio.h>
#define DIV(n,x)((n%x)==0?1:0)
int main()
{
    int y;
    scanf("%d",&y);
    if(DIV(y,3)&&DIV(y,7))
    printf("yes!\n");
    else
    printf("No!\n");
    return 0;
}
共 0 分 

第35题

设文件number.dat中存放了一组整数。请编写程序统计并输出文件中正整数、零和负整数的个数。

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>
FILE*fp;
int main()
{
    int p=0,n=0,temp;
    fp=fopen("number.dat","r");
    if(fp==NULL)
    printf("File cannot be found!\n");
    else
    {
        while(!feof(fp))
        {
            fscanf(fp,"%d",&temp);
            if(temp>0)
            p++;
            else if(temp<0)
            n++;
            else
            z++;
        }
    }
}
共 0 分