青青 发表于 2019-3-3 13:24:19

重庆大学2019年2月网上C语言程序设计E卷

一 、 单项选择题 (共 20 题、0 / 30 分 )
1、#inlucde <mycode.h>是一条(   )。
A、文件包含预处理命令
B、条件编译预处理命令
C、C语句
D、宏定义预处理语句
答:
2、在由多个函数组成的C程序中,函数排列顺序上主函数()。
A、必须在最后一个位置
B、可以在任意位置
C、可以在第一个位置
D、
必须在第一个位置
答:
3、
C程序中,数据的两种表现形式是()。
A、
矢量和标量
B、
常量和矢量
C、
变量和矢量
D、
常量和变量
答:
4、在下面的叙述中不正确的是(   )。
A、a!=b等价于a=a!b
B、a^=b等价于a=a^b
C、a&=b等价于a=a&b
D、a|=b等价于a=a|b
答:
5、下面关于条件编译预处理#ifdef系列命令的叙述中,正确的是()。
A、在使用#ifndef系列预处理命令时,#ifdef必须和#endif配合使用
B、使用#ifdef系列预处理命令,可以在程序执行时对流程进行控制
C、#ifdef和#ifndef预处理命令的功能完全相同
D、使用#ifdef系列预处理命令,可以在编译时对处理代码进行选择
答:
6、下面关于一维动态数组的描述中,错误的是()。
A、malloc函数的返回值需按要求强制转换后赋值给指针变量
B、动态一维数组的长度也不能是任意的长度
C、malloc函数的返回值直接赋值给指针变量
D、创建一维动态数组需要一个一级指针变量作为数组名使用
答:
7、设有C语句序列:int arr,*p1; p1=&arr;,那么能够输入数组3行3列元素值的是()。
A、scanf("%d",p1);
B、scanf("%d",arr);
C、scanf("%d",p1+3);
D、scanf("%d",p1);
答:
8、设有C语句序列:int arr,*p1; p1=&arr;,那么能够输入数组3号元素值的是()。
A、scanf("%d",p1);
B、scanf("%d",arr);
C、scanf("%d",p1);
D、scanf("%d",p1+3);
答:
9、
下面对typedef的叙述中不正确的是(   )。
A、用typedef可以增加新的基本数据类型
B、用typedef可以定义各种类型名,但不能用来定义变量
C、用typedef只是将已存在的类型用一个新的标识符来代表
D、使用typedef有利于程序的通用和移植
答:
10、下面与结构体数组做函数参数相关描述中,错误的是()。
A、结构体数组做函数参数实现的是传地址值函数调用
B、程序中,实参可以通过结构体数组0号元素的地址表示将整个结构体数组传递给形参
C、结构体数组做函数参数时,实参将自己的所有元素依次拷贝给形参
D、结构体做函数参数时,形参和实参必须是同一个结构体类型
答:
11、下面关于结构体变量存储空间的描述中,错误的是()。
A、由于结构体变量所有成员都具有自己的空间,所以结构体变量可以进行初始化
B、结构体变量中,空间要求最大的成员分量决定了结构体变量的空间需求
C、结构体变量的所有成员分量都具有自己的空间
D、结构体变量的空间需求是所有成员空间要求之和
答:
12、下面程序执行时输入的数据是:1 2 3 4 5,那么输出的结果是()。
#include<stdio.h>
void main()
{
int a,i,*p=a,**p1=&p;
for(i=0;i<5;i++)
scanf("%d",*p1+i);
for(i=4;i;i--)
printf("%2d",*(a+i));
printf("\n");
}
A、5 4 3 2 1
B、5 4 3 2
C、1 2 3 4 5
D、1 2 3 4
答:
13、
执行语句序列:int a,b=3; double x,y=12; b=(a=10/b)/(x=2*y);后,变量a和b的值是()。
A、
3.3和0
B、
3和0.125
C、
3.3和0.1375
D、
3和0
答:
14、设由文件指针变量fp关联的数据文件中,数据按照94行94列的方式排列,每个数据长度为32个字节。应用中要求读取文件中第16行第1列的数据,那么在读数据之前应该进行的操作是()。
A、fseek(fp,94*94*32,SEEK_SET);
B、fseek(fp,94*94*32,SEEK_END);
C、fseek(fp,94*94*32,SEEK_CUR);
D、fseek(fp,-94*94*32,SEEK_SET);
答:
15、
设有宏定义:#defineNU 123,则printf("The NU is %\n",NU);被处理成(   )。
A、printf("The 123 is %\n",NU);
B、
printf("The NU is %\n",123);
C、printf("The NU is %\n",NU);
D、printf("The 123 is %\n",123);
答:
16、对于下面代码段的执行结果,叙述正确的是()。
int a=5,b=10;
int *x,*y;
x=&a,y=&b;
*x=*x+*y;
*y=*x-*y;
*x=*x-*y;
A、a=10,b=5,x指向a,y指向b
B、a=10,b=5,x指向b,y指向a
C、a=5,b=10,x指向b,y指向a
D、a=5,b=10,x指向a,y指向b
答:
17、下面程序段执行后,变量a和b的值依次是()。
int a=1234,b=0;
while(a)
{ b=b*10+a%10;
a/=10;
}
A、0和4321
B、1234和4321
C、0和1234
D、1和1234
答:
18、设有如下所示C程序段,程序段中内循环体执行的总次数是()。
int i,j;
for(i=5;i;i--)
for(j=0;j<4;j++)
{   …    }
A、30次
B、24次
C、20次
D、25次
答:
19、下面程序段,运行时输入数据60,则输出结果是()。
int a;
scanf("%d",&a);
if(!(a%2))
    printf("a是偶数\t");
if(a%2)
    printf("a不是偶数\t");
if(a%3==0)
    printf("a能够被3整除\n");
if(a%3!=0)
    printf("a不能被3整除\n");
A、a不是偶数 a不能被3整除
B、a是偶数 a能够被3整除
C、a是偶数 a不能被3整除
D、a不是偶数 a能够被3整除
答:
20、对于下面程序段,可以得到的结论是()。
int x=-123,y=0;
do
{
y+=x;
x+=2;
}while(x!=0);
A、存在语法错误
B、没有语法错误,a值为0是退出循环
C、没有语法错误,能够正确执行并退出循环
D、没有语法错误,但会陷入死循环
答:
二 、 判断题 (共 10 题、0 / 10 分 )
1、C程序中,为已经存在的数据类型名取别名时,可以使用关键字typedefing。
正确
错误
答:
2、
C程序中,编译预处理命令#if和#endif必须配合使用。
正确
错误
答:
3、标准库函数free只能释放通过动态分配获取的存储空间。
正确
错误
答:
4、C程序中,如果要使用一个动态的一维整型数组,该数组的名字应该用一个整型的一级指针变量表示。
正确
错误
答:
5、设C程序中有定义:int a=0x3030,b;,则表达式b=a^a^a;与b=a;等价。
正确
错误
答:
6、设有C语句:int a,*p=&a,**p1=&p;,那么表达式**p1表示了数组元素a。
正确
错误
答:
7、C程序中初始化多维数组时,如果提供了数组的全部元素值,则可任意地选择省略其中一维的长度指定。
正确
错误
答:
8、C语言中,不支持C99标准环境中定义数组不能使用变量作为数组长度,但在支持C99标准的环境中是允许的。
正确
错误
答:
9、
在C语言中,else关键字不能单独出现,在其前面必须由对应的if配合使用。
正确
错误
答:
10、for循环结构与while循环结构执行过程相同,都是先判断条件,当条件成立时执行循环体。
正确
错误
答:
三 、 填空题 (共 10 题、0 / 20 分 )
1、
下面程序的功能是:求两个实数之和的平方根,请选择合适选项填空完成程序。
#include <stdio.h>
#include <         >
int main()
{
    double a,b;
    scanf("%lf,%lf",&a,&b);
    printf("%lf\n",sqrt(a+b));
    return 0;
}
A string.h
B stdlib.h
C math.h
D mathematics.h
答:
2、
下面程序的功能是:随机产生20个实数存放到一维数组a中,并通过指向数组a的指针移动的方式输出所有数组元素值。请选择合适选项填空完成程序。
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
#define N 20
int main()
{
    double a,*p;
    int i;
    srand(time(NULL));
    for(i=0;i<N;i++)
      a=rand()%100+rand()%100*1e-2;
    p=a;
    while(p<   ①   )
    {
      printf("%7.2lf",   ②   );
      p++;
    }
    printf("\n");
    return 0;
}
Aa
Ba+N
Cp
D*p
答:
3、
下面程序的功能是:求实型变量b的小数部分,请选择合适选项填空完成程序。
#include <stdio.h>
int main()
{
    double b;
    scanf("%lf",&b);
    printf("%lf\n",         );
    return 0;
}
A b%(int)b
B (int)b/b
C (int)b-b
D b-(int)b
答:
4、下面程序的功能是:求从键盘输入的3个整数之和。请选择合适选项填空完成程序。
#include <stdio.h>
int add(   ①    );
int main()
{
int a,b,c,sum;
printf("?a,b,c: ");
scanf("%d,%d,%d",&a,&b,&c);
sum=add(   ②      );
printf("sum=%d\n",sum);
return 0;
}
int add(int a,int b)
{
return a+b;
}
A add(a,b),c
B a,b,c
C int a;int b
D int,int
答:
5、
函数reverse的原型为:void reverse(char *s);,其功能是颠倒存放字符串s,函数定义代码已经写入到源程序问文件myfuns.cpp。下面程序利用函数reverse将键盘上输入的字符串进行颠倒并输出。请选择合适选项填空完成程序。
#include <stdio.h>
#include      ①   
int main()
{
    char s;
    printf("?s: ");
    gets(s);
    reverse(s);
    puts(s);
    return 0;
}
A"void reverse(char *s);"
Bvoid reverse(char *s);
Cmyfuns.cpp
D"myfuns.cpp"
答:
6、
下面程序的功能是:通过宏定义MOD求4个实型数据a+b与c+d的余数。请选择合适选项填空完成程序。
#include <stdio.h>
#include <math.h>
#define MOD(x,y)      ①   
int main()
{
    double a,b,c,d,e;
    printf("?a&b:");
    scanf("%lf,%lf,%lf,%lf",&a,&b,&c,&d);
    e=MOD(   ②   );
    printf("e=%lf\n",e);
    return 0;
}
Aa,b,c,d
Ba+b,c+d
CMOD((x),(y))
Dfmod((x),(y))
答:
7、
下面程序运行时,若输入数据为:123456789,则输出结果为:a=123,b=89,请选择合适选项填空完成程序。
#include <stdio.h>
int main()
{
    int a,b;
    scanf("         ",&a,&b);
    printf("a=%d,b=%d\n",a,b);
    return 0;
}
A %3d%2d
B %3d%*d%2d
C %3d%*4d%2d
D %3d%4d%2d
答:
8、
下面程序的功能是:从整数10到99之间选出能被3整除、且有一位上的数是5的那些数,并把它们放在p数组中,输出这些数据以及它们的个数。请选择合适选项填空完成程序。
#include <stdio.h>
void ptarr(int v[],int n);
int main()
{
    int p,k,i=0,a1,a2;
    for(k=10;k<100;k++)
    {
      a1=k/10;
      a2=k%10;
      if(   ①         )
      {
            p=k;
            i++;
      }
    }
    ptarr(   ②         );
    printf("满足条件的数有:%d个\n",i);
    return 0;
}
void ptarr(int v[],int n)
{
    int i;
    for(i=0;i<n;i++)
      printf("%3d",v);
    printf("\n");
}
Ak%3==0&&(a1==5||a2==5)
Bk%3==0&&a1==5||a2==5
Cp,i
Dp,i
答:
9、
下面程序的功能是:通过指针数组组织从键盘输入的5个字符串,要求每个字符串的空间按其实际需要提供,然后输出第3个字符串。请选择合适选项填空完成程序。
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
int main()
{
    char *str,stin;
    int i;
    for(i=0;i<5;i++)
    {
      gets(stin);
      str=   ①      ;
      strcpy(str,stin);
    }
    i=0;
    while(i<5)
    {
      puts(   ②      );
      i++;
    }
    return 0;
}
A(char *)malloc(sizeof(char)*strlen(stin)+1)
Bmalloc(sizeof(char)*strlen(stin)+1)
Cstr
Dstr
答:
10、下面程序的功能是:从文件mydata.txt中读出3个结构体变量到数组a中,然后将数组a的内容输出到屏幕上。请选择合适选项填空完成程序。
#include <stdio.h>
struct test
{
double x;
int y;
};
int main()
{
FILE *f;
   ①       a;
int i;
f=fopen("mydata.txt","rb");
if(f==NULL)
{
printf("Can't create file.\n");
return -1;
}
for(i=0;i<3;i++)
fread(   ②       );
fclose(f);
for(i=0;i<3;i++)
printf("%lf,%d\n",a.x,a.y);
return 0;
}
Astruct test
Btest
C&a,sizeof(struct test),1,f
Da,sizeof(struct test),1,f
答:
四 、 程序阅读题 (共 5 题、0 / 20 分 )
1、(写出下面程序执行的结果)
#include <stdio.h>
enum week{sun,mon,tue,wed,thu,fri,sat};
int main()
{
char *wk[]={"Sunday","Monday","Tuesday","Wednesday",
"Thursday","Friday","Saturday"};
enum week day;
day=tue;
printf("%s,%s\n",wk,wk[(day+5)%7]);
return 0;
}
答:
2、
#include <stdio.h>
enum week{sun,mon,tue,wed,thu,fri,sat};
int main()
{
    char *wk[]={"Sunday","Monday","Tuesday","Wednesday",
"Thursday","Friday","Saturday"};
    enum week day;
    day=tue;
    printf("%s,%s\n",wk,wk[(day+5)%7]);
    return 0;
}
答:
3、(写出下面程序执行的结果)
#include <stdio.h>
int main()
{
int x,b1,b2,b3;
    x=300;
b3=x/100;
b2=(x-b3)/100;
b1=x%10;
x=b1+b2+b3;
printf("%d\n",x);
return 0;
}
答:
4、
(写出程序执行后data.txt文件中的内容)
#include <stdio.h>
int main()
{
    FILE *fp;
    char t[]="How old 3%* Are 23you#";
    int i;
    if((fp=fopen("data.txt","w"))==NULL)
    {
      printf("Can not Open File!");
      return -1;
    }
    for(i=0;t!='#';i++)
      if(t>='A'&&t<='Z')
      {
            t=t+32;
            fputc(t,fp);
      }
    fclose(fp);
    return 0;
}
答:
5、(写出下面程序执行的结果)
#include <stdio.h>
int main()
{
int i,j,m=3;
for(i=0;i<m;i+=2)
    for(j=m-1;j>=0;j--)
       printf("%1d%c", i+j,j ? 'H' : '$' );
printf("\n");
return 0;
}
答:
五 、 程序设计题 (共 2 题、0 / 20 分 )
1、编程序实现功能:从键盘上输入一个字符串和一个字符,统计该字符在字符串中出现的次数。
答:
2、编程序实现功能:通过条件编译方式确定程序运行时实现字符串拷贝还是字符串连接。
附件是答案, 请核对题目下载

页: [1]
查看完整版本: 重庆大学2019年2月网上C语言程序设计E卷