山东大学20春《程序设计C》课程测试

[复制链接]
发表于 2020-2-2 09:44:58 | 显示全部楼层 |阅读模式
   《C语言程序设计》模拟卷
题号
一
二
三
四
总分

得分






评卷人







一、选择题
1.以下说法中正确的是(     )。
A.C语言程序总是从第一个函数开始执行
B.C语言程序中,要调用的函数必须在main()函数中定义
C.C语言程序总是从main( )函数开始执行
D.C语言程序中的main( )函数必须放在程序的开始部分
2.下列为字符常量的是(    )。
A.“a”     B. ‘ab’     C. ‘\n’     D.‘\084’
3.在C语言中,下面字符串能用作变量名的是(     )。
    A.  a+b     B. auto     C. 2-and     D. a2
4.在C语言中运算对象必须是整型的运算符是(     )。
A.  %      B.  /        C. = =      D. <=
5.若有以下定义:int x=10,y=3,z; 则语句:printf(“%d\n”,z=(x%y,x/y));的输出结果为 (     )。
A.  1      B. 0      C. 2       D.  3
6.表达式(     )的值是整数类型。
A.  15/2    B.  15/2+2.0     C.  25/5.0    D.   0.5*10
7.若double  x=2,y;则执行y=x+3/2;后,y的值是(     )。
A.  3.500000    B.  3.000000   C.  2.000000    D.  3
8.C语言程序的基本单位是(     )。
A.  程序行    B.  语句    C.   函数     D.   字符
9.设int类型的数据长度为2字节,则int类型数据的取值范围是(   )。
A. 0~255   B. -32768~32767      C. -256~255  D. 0~65535
10.语句int  (*p)( )的含义是(     )。
A.  p是一个指向一维数组的指针变量
B.  p是指针变量,它指向一个整型数据的指针
C.  p是一个指向函数的指针,该函数的返回值为整型
D. 以上答案都不对  
11.下面程序的输出结果是(    )。
main()
{ int  x =10,y =10;
printf(“%d,%d\n”,x--,y--);
}
A. 10,10     B. 9,9     C. 9,10    D. 10,9
12.(    )是C语言的标准函数名。
A. scanf     B. case     C. while     D. int
13.下面程序的输出结果是(     )。
void  main()
{ int  i=10;
switch(i)
{
case  9:i+=1;
case  10:i+=1;
case  11:i+=1;
case  12:i+=1;
}
printf(“i=%d\n”,i);
}
A. 10     B. 11      C. 12     D. 13
14.以下定义语句中,错误的是(     )。
A. int  a[ ]={1,2}        B. int  a[ ][3]={1,2,3,4,5};
C. char  s[10]=“test”;     D. int  n=5,a[n];
15.在一个源文件中定义的全局变量的作用域为(     )。
A. 本文件的全部范围       B. 从定义该变量开始至本文件结束
C. 本函数的全部范围       D. 本程序的全部范围  
16.int型变量在内存中占2个字节,若int  a[10]={0,2,4};则数组a所占字节数是(    )。
A.3      B.10      C.20      D.6
17.有以下程序
#include <stdio.h>
#include <string.h>
main()
{
char a[7]="China";
int i,j;
i=sizeof(a);
j=strlen(a);
printf("%d  %d\n",i,j);
}
程序运行后的输出结果是(     )。
A. 5  5         B. 7  6
C. 7  5         D. 6  6
18.下面程序运行时,如果从键盘上输入5,则输出的结果是(     )。
void  main( )
{ int  x;
scanf(“%d”,&x);
if (x - - < 5) printf(“%d\n”,x);
else  printf(“%d\n”,x + +);
}
A. 3      B. 4      C. 5      D. 6
19.若有以下说明和语句,且已知char型占1个字节,int型占两个字节,float 型占4个字节。
    struct st
{int num;
char name[10];
int age;
float score;
}student;
则结构体变量student占用内存的字节数是(   )。
A. 10     B. 18     C. 9    D. 2
20.以下程序的输出结果是(     )。
void  main()
{ char s[ ]="ABCD";
int  *p;
for (p=s;p<s+4;p++)
printf("%s\n",p);
}A.ABCD                B.  A
ABC                     B
AB                      C
A                       D
C.   D                    D.  ABCD
C                         BCD
         B                         CD
         A                         D
二、填空题
1.若有定义int  a[2][5],则整型数组a包含有             个元素。
2.数学表达式x3+y3在C语言中应表示为                。
3.若有数据3.5需要存储到变量x中,则变量x定义应写为           。
4.有如下程序段
int *p,a=10,b=1;  p=&a;  a=*p+b;
执行该程序段后,a的值为                。
5.表达式“0≤a≤10”在C语言中应表示为             。
6.若有定义float  x,y;则从键盘给x、y输入数据的语句应写为
               。
7.有以下程序
#define SQR(x)  (x)*(x)
main()
{int a,k=3;
a=SQR(k+1);
printf(“%d\n”,a);
}
程序运行后的输出结果为             。
8.以下程序的输出结果为            。
void main( )
   { int i,j,a[ ]={1,2,3,4,5,6,7,8,9,10};
     int sum=0;
     for (i=0;i<10;i++)
       sum=sum+a[i];
     printf("%4d",sum);
     }
9.以下程序的输出结果为           。
#include <stdio.h>
   #include <string.h>
void main( )
{char str1[20]=”Computer”,str2[ ]=”Language”;
    strcat(str1,str2);
printf(“%s\n”,str1);
}
10.以下程序的输出结果为           。
main( )
{int a[ ]={1,2,3,4,5,6},*p;
  p=a;
    *(p+3)+=2;
printf(“%d,%d\n”,*p,*(p+3));
}
三、判断题(对的填√,错的填×)
1.C语言源程序文件的扩展名均为 .c。
2.C语言中的基本数据类型有整型、字符型和实型。
3.C语言中不同的函数中不可以使用相同名字的变量。
4.C语言程序区分字母大小写,符号常量必须定义为大写。
5.若int x=100,y=200,则语句printf(“%d”,(x,y))的输出结果是100。
6.C语言的源程序经过编译、连接后才能运行。
7.若int  a[2][2]={{1},{2,3}};则a[0][1]的值为0。
8.C语言的数组名是一个地址常量,不能对它进行加、减和赋值运算。
9.若x为某函数f之内说明的变量,则当函数f执行完后,x值无定义。
10.若int  i=10,j=2;则执行i*=j+8;后i的值为28。
四、编程题
1.输入圆的半径,计算并输出圆的周长、面积及球的体积(结果保留两位小数)。
2.有一个函数:
y=     
编程输入x的值,求y的值。
3.Fibonacci数列为1、1、2、3、5、8、13、……,编程输出该数列的前20项。
4.编程输出所有的水仙花数。水仙花数是一个3位数,其各位数字立方和等于该数本身。如:153=13+53+33,故153是水仙花数。
5.编程从输入的10个数中,去掉一个最大数和一个最小数,求剩余数的平均值。
参考答案:
第1题:程序代码
#define  PI  3.1415926
main( )       
{
float r,c,s,v;
printf("Please enter r:");
scanf("%f",&r);                           
c=2*PI*r;
s=PI*r*r;
v=4/3.0*PI*r*r*r;                          
printf("c=%6.2f\n",c);
printf("s=%6.2f\n",s);
printf("v=%6.2f\n",v);
getch();
}                                      第2题:程序代码
main()
{float x,y;
printf("Please enter x:");
scanf("%f",&x);                        
if(x<1)
   y=x;
if(x>=1 &&x<10)
   y=2*x;
if(x>=10)
   y=3*x-2;                              
printf("y=%f\n",y);                        
}
第3题:程序代码
#include  <stdio.h>
void  main()
{int f[20]={1,1},i;                              
for(i=2;i<20;i++)
   f[i]=f[i-2]+f[i-1];                             
for(i=0;i<20;i++)
   {if(i%4==0)
     printf("\n");
    printf("%5d",f[i]);
    }                                       
getch();
}第4题:程序代码
void main()
{int m,i,j,k;                              
for(m=100;m<=999;m++)
  {i=m%10;
   j=m%100/10;
   k=m/100;
   if(i*i*i+j*j*j+k*k*k==m)
     printf("%d\t",m);                     
}
  printf("\n");
}第5题:程序代码
#define N 10
main()
{float a[N],aver,sum=0,t;
int i,j;                                 
printf("enter data to a:");
for(i=0;i<N;i++)
   scanf("%f",&a[i]);                     
for(i=1;i<N;i++)
   for(j=0;j<N-i;j++)
     if(a[j]<a[j+1])
    {t=a[j];a[j]=a[j+1];a[j+1]=t;}           
printf("the sorted data:");
for(i=0;i<N;i++)
   printf("%6.2f",a[i]);
for(i=1;i<9;i++)
   sum=sum+a[i];                       
aver=sum/8;
printf("aver=%6.2f\n",aver);
}                                    
奥鹏无忧答案网

快速回复 返回顶部 返回列表