奥鹏作业答案 发表于 2020-2-2 09:44:58

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

   《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.若doublex=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~255D. 0~65535
10.语句int(*p)( )的含义是(   )。
A.p是一个指向一维数组的指针变量
B.p是指针变量,它指向一个整型数据的指针
C.p是一个指向函数的指针,该函数的返回值为整型
D. 以上答案都不对
11.下面程序的输出结果是(    )。
main()
{ intx =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.下面程序的输出结果是(   )。
voidmain()
{ inti=10;
switch(i)
{
case9:i+=1;
case10:i+=1;
case11:i+=1;
case12:i+=1;
}
printf(“i=%d\n”,i);
}
A. 10   B. 11      C. 12   D. 13
14.以下定义语句中,错误的是(   )。
A. inta[ ]={1,2}      B. inta[ ]={1,2,3,4,5};
C. chars=“test”;   D. intn=5,a;
15.在一个源文件中定义的全局变量的作用域为(   )。
A. 本文件的全部范围       B. 从定义该变量开始至本文件结束
C. 本函数的全部范围       D. 本程序的全部范围
16.int型变量在内存中占2个字节,若inta={0,2,4};则数组a所占字节数是(    )。
A.3      B.10      C.20      D.6
17.有以下程序
#include <stdio.h>
#include <string.h>
main()
{
char a="China";
int i,j;
i=sizeof(a);
j=strlen(a);
printf("%d%d\n",i,j);
}
程序运行后的输出结果是(   )。
A. 55         B. 76
C. 75         D. 66
18.下面程序运行时,如果从键盘上输入5,则输出的结果是(   )。
voidmain( )
{ intx;
scanf(“%d”,&x);
if (x - - < 5) printf(“%d\n”,x);
elseprintf(“%d\n”,x + +);
}
A. 3      B. 4      C. 5      D. 6
19.若有以下说明和语句,且已知char型占1个字节,int型占两个字节,float 型占4个字节。
    struct st
{int num;
char name;
int age;
float score;
}student;
则结构体变量student占用内存的字节数是(   )。
A. 10   B. 18   C. 9    D. 2
20.以下程序的输出结果是(   )。
voidmain()
{ 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.若有定义inta,则整型数组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.若有定义floatx,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;
   printf("%4d",sum);
   }
9.以下程序的输出结果为         。
#include <stdio.h>
   #include <string.h>
void main( )
{char str1=”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.若inta={{1},{2,3}};则a的值为0。
8.C语言的数组名是一个地址常量,不能对它进行加、减和赋值运算。
9.若x为某函数f之内说明的变量,则当函数f执行完后,x值无定义。
10.若inti=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题:程序代码
#definePI3.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>
voidmain()
{int f={1,1},i;                              
for(i=2;i<20;i++)
   f=f+f;                           
for(i=0;i<20;i++)
   {if(i%4==0)
   printf("\n");
    printf("%5d",f);
    }                                       
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,aver,sum=0,t;
int i,j;                                 
printf("enter data to a:");
for(i=0;i<N;i++)
   scanf("%f",&a);                     
for(i=1;i<N;i++)
   for(j=0;j<N-i;j++)
   if(a<a)
    {t=a;a=a;a=t;}         
printf("the sorted data:");
for(i=0;i<N;i++)
   printf("%6.2f",a);
for(i=1;i<9;i++)
   sum=sum+a;                     
aver=sum/8;
printf("aver=%6.2f\n",aver);
}                                    
奥鹏无忧答案网

页: [1]
查看完整版本: 山东大学20春《程序设计C》课程测试