首页 > 其他分享 >计算机等级考试二级C语言模拟试卷(六)

计算机等级考试二级C语言模拟试卷(六)

时间:2022-11-10 05:55:05浏览次数:48  
标签:int double 试卷 程序 C语言 printf fun include 模拟

一、选择题(每小题1分,共40分)

(1)下列叙述中正确的是

A)算法就是程序

B)设计算法时只需要考虑数据结构的设计

C)设计算法时只需要考虑结果的可靠性

D)以上三种说法都不对

(2)下列关于线性链表的叙述中,正确的是

A)各数据结点的存储空间可以不连续,但它们的存储顺序与逻辑顺序必须一致

B)各数据结点的存储顺序与逻辑顺序可以不一致,但它们的存储空间必须连续

C)进行插入与删除时,不需要移动表中的元素

D)有序的线性链表也可以方便地进行二分查找

(3)下列关于二叉树的叙述中,正确的是

A)叶子结点总是比度为2的结点少一个

B)叶子结点总是比度为2的结点多一个

c)叶子结点数是度为2的结点数的两倍

D)度为2的结点数是度为1的结点数的两倍

(4)软件按功能可以分为应用软件、系统软件和支撑软件(或工具软件)。下面属于应用软件的是

A)学生成绩管理系统                           B)C语言编译程序

C)UNIX操作系统                                D)数据库管理系统

(5)某系统总体结构图如下图所示:

 

该系统总体结构图的深度是

A)2                      B)3                      C)6                          D)7

(6)程序调试的任务是

A)设计测试用例                                  B)验证程序的正确性

C)发现程序中的错误                           D)诊断和改正程序中的错误

(7)下列关于数据库设计的叙述中,正确的是

A)在需求分析阶段建立数据字典         B)在概念设计阶段建立数据字典

C)在逻辑设计阶段建立数据字典        D)在物理设计阶段建立数据字

(8)数据库系统的三级模式不包括

A)概念模式          B)内模式              C)外模式                D)数据模式

(9)有三个关系R、S和T如下:

 

则由关系R和s得到关系T的操作是

A)自然连接          B)差                     C)交                       D)并

(10)下列选项中属于面向对象设计方法主要特征的是 

A)继承                 B)自顶向下          C)模块化                D)逐步求精

(11)下列叙述中错误的是

A)C语言编写的函数源程序,其文件名后缀可以是.C

B)C语言编写的函数都可以作为一个独立的源程序文件

C)C语言编写的每个函数都可以进行独立的编译并执行

D)一个C语言程序只能有一个主函数

(12)下列关于程序模块化的叙述,错误的是

A)把程序分成若干相对独立的模块,可便于编码和调试

B)把程序分成若干相对独立、功能单一的模块,可便于重复使用这些模块

C)可采用自底向上、逐步细化的设计方法把若干独立模块组装成所要求的程序

D)可采用自项向下、逐步细化的设计方法把若干独立模块组装成所要求的程序

(13)下列关于C语言常量的叙述,错误的是

A)所谓常量,是指在程序运行过程中,其值不能被改变的量

B)常量分为整型常量、实型常量、字符常量和字符串常量

C)常量可分为数值型常量和非数值型常量

D)经常被使用的变量可以定义成常量

(14)若有定义语句:int a=10;double b=3.14;,则表达式'A'+a+b值的类型是

A)char                   B)int                     C)double                  D)float

(15)若有定义语句:int x=12,y=8,z;,在其后执行语句z=0.9+x/y;,则z的值为

A)1                       B)1.9                     C)2                          D)2.4

(16)若有定义:int a,b;,通过语句scanf("%d;%d",&a,&B);,能把整数3赋给变量a,5

赋给变量b的输入数据是

A)3 5                    B)3,5                     C)3;5                       D)35

(17)若有定义语句:int k1=10,k2=20;,执行表达式(k1=k1>k2)&&(k2=k2>k1)后,k1和k2的值分别为

A)0和1                B)0和20               C)10和1                 D)10和20

(18)有以下程序

#include  <stdio.h>

main()

{  

        int a=1,b=0;

if (--a) b++;

else if(a==0)  b+=2;

else  b+=3;

printf("%d\n",b);

)

程序运行后的输出结果是

A)0                       B)1                       C)2                          D)3

(19)下列条件语句中,输出结果与其他语句不同的是

A)if  (a)printf("%d\n",x); else printf("%d\n",y);

B)if  (a==0)  printf("%d\n",y); else printf("%d\n",x);

C)if  (a!=0)  printf ("%d\n",x); else printf("%d\n",y);

D)if  (a==0)  printf("%d\n",x); else printf("%d\n",y);

(20)有以下程序

#include   <stdio.h>

main()

int a=7;

while(a--);

printf("%d\n",a);

)

程序运行后的输出结果是

A)-1                      B)0                       C)1                          D)7

(21)下列不能输出字符A的语句是(注:字符A和a的ASCIl码值分别为65和97)

A)printf("%c\n",'a'-32);                    B)printf("%d\n",'A');

C)printf("%c\n",65);                        D)print-f("%c\n",'B'-1);

(22)有以下程序(注:字符a的ASCIl码值为97)

#include    <stdio.h>

main()

char *s={"abc"};

do

{  printf("%d",*%10);++s;

}while(*s);

)

程序运行后的输出结果是

A)abc                    B)789                    C)7890                    D)979899

(23)若有定义语句:double a,*p=&a;下列叙述中错误的是

A)定义语句中的*号是一个间址运算符

B)定义语句中的*号只是一个说明符

C)定义语句中的P只能存放double类型变量的地址

D)定义语句中,*p=&a把变量a的地址作为初值赋给指针变量p

(24)有以下程序

#include<stdio.h>

double f(double x)

{ return x*x+1;}

void main()

{

    double a=0;

    int i;

    for (i=0;i<30;i+=10)

          a+=f((double)i);

    printf("%5.0f\n",a);

}

程序运行后的输出结果是

A)401                    B)500                    C)503                      D)1404

(25)若有定义语句:int year=2019,*p=&year;,以下不能使变量year中的值增至2020的

语句是

A)*p+=1;            B)( *p)++;           C)++(*p);              D)*p++;

(26)下列定义数组的语句中错误的是

A)int  num[]={1,2,3,4,5,6};

B)int  num[][3]={{1,2},3,4,5,6};

C)int  num[2][4]=({1,2,{3,4},{5,6});

D)int  num[][4]={1,2,3,4,5,6};

(27)有以下程序

#include  <stdio.h>

void fun(int *p)

{  printf(“%d\n”,p[5]);}

main()

{   int a[10]={1,2,3,4,5,6,7,8,9,10};

     fun(&a[3]);

)

程序运行后的输出结果是

A)5                       B)6                       C)8                          D)9

(28)有以下程序

#include<stdio.h>

#define N 4

void  fun(int a[][N],int b[])

{

       int i;

       for (i=0;i<N;i++)

              b[i]=a[i][i]-a[i][N-1-i];

}

void main()

{

    int x[N][N]={{1,2,3,4},{5,6,7,8},{9,10,11,12},{13,14,15,16}};

    int y[N],i;

    fun(x,y);

    for (i=0;i<N;i++)

       printf("%d,",y[i]);

   printf("\n");

}

程序运行后的输出结果是

A)-12,-3,0,0,                              B)-3,-1,1,3,

C)0,1,2,3,                                     D)-3,-3,-3,-3 

(29)有以下函数

int fun(char *x,char *y)

{  int n=0;

    while ((*x=*y)&&*x!='\0') {x++;y++;n++;}

    return n:

)

函数的功能是

A)查找x和y所指字符串中是否有'\0'

B)统计x和y所指字符串中前面连续相同的字符个数

C)将y所指字符串赋给X所指存储空间

D)统计x和y所指字符串中相同的字符个数

(30)若有定义语句:char *s1="OK",*s2="ok";,以下选项中,能够输出"OK"的语句是

A)if(strcmp(s1,s2)=0)  puts(s1);          B)if(strcmp(s1,s2)!=0) puts(s2);

C)if(strcmp(s1,s2)=1)  puts(s1);          D)if(strcmp(s1,s2)!=0) puts(s1);

(31)以下程序的主函数中调用了在其前面定义的fun函数

main()

{  double a[15],k;

    k=fun(a);

}

则以下选项中错误的fun函数首部是

A)double fun(double a[15])                    B)double fun(double *A)

C)double fun(double a[])                        D)double fun(double A)

(32)有以下程序

#include <stdio.h>

#include <string.h>

int main()

{

    char a[5][10]={"china","beijing","you","tiananmen","welcome"};

    int i,j;  char t[10];

    for(i=0;i<4;i++)

      for(j=i+1;j<5;j++)

         if (strcmp(a[i],a[j])>0)

               { strcpy(t,a[i]); strcpy(a[i],a[j]); strcpy(a[j],t); }

    puts(a[3]);

    return 0;

}

程序运行后的输出结果是

A)Beijing               B)china                  C)welcome               D)tiananmen

(33)有以下程序

#include <stdio.h>

int f(int m)

{  static int n=0;

   n+=m:

    return n;

}

main()

{   int n=0;

    printf("%d,",f(++n));

    printf("%d\n",f(n++));

}

程序运行后的输出结果是

A)1, 1                   B)1,2                     C)2,3                       D)3,3

(34)有以下程序

#include <stdio.h>

main()

{  char ch [3][5]={"AAAA","BBB","CC"};

    printf ("%s\n",ch[1]);

}

程序运行后的输出结果是

A)AAAA               B)BBB                  C)BBBCC                D)CC

(35)有以下程序

#include <stdio.h>

#include <string.h>

void fun(char *w,int m)

{

        char s,*p1,*p2;

        p1=w;  p2=w+m-1;

        while (p1<p2)

       { s=*p1; *p1=*p2; *p2=s; p1++; p2--;}

}

int main()

{

    char a[]="123456";

    fun(a,strlen(a));

    puts(a);

    return 0;

}

程序运行后的输出结果是

A)116611               B)123456               C)161616                 D)654321

(36)有以下程序

#include <stdio.h>

#include <string.h>

typedef struct

{ char name[9]; char sex; int score[2];}STU;

STU fun(STU a)

{

       STU b={"Zhao",'m',85,90};

       int i;

       strcpy(a.name,b.name);

       a.sex=b.sex;

      for (i=0;i<2;i++) a.score[i]=b.score[i];

      return a;

int main()

{

    STU c={"Qian",'f',95,92},d;

    d=fun(c);

    printf("%s,%c,%d,%d,",d.name,d.sex,d.score[0],d.score[1]);

    printf("%s,%c,%d,%d,",c.name,c.sex,c.score[0],c.score[1]);

    return 0;

}

程序运行后的输出结果是

A)Zhao,m,85,90,Qian,f,95,92

B)Zhao,m,85,90,Zha0,m,85,90

C)Qian,f,95,92,Qian,f,95,92

D)Qian,f,95,92,Zhao,m,85,90

(37)有以下程序

#include <stdio.h>

main()

{   struct node {int n;stmct node+next;} *p;

    struct  node x[3]={{2,x+l},{4,x+2},{6,NULL}};

    p=x;

    printf("%d,",p->n);

    printf("%d\n",p->next->n);

}

程序运行后的输出结果是

A)2,3                    B)2,4                     C)3,4                       D)4,6

(38)有以下程序

#include <stdio.h>

main()

{   int a=2,b;

    b=a<<2;

    printf("%d\n",b);

)

程序运行后的输出结果是

A)2                       B)4                       C)6                          D)8

(39)下列选项中叙述错误的是

A)C程序函数中定义的赋有初值的静态变量,每调用一次函数,赋一次初值

B)在C程序的同一函数中,各复合语句内可以定义变量,其作用域仅限本复合语句内

C)C程序函数中定义的自动变量,系统不自动赋确定的初值

D)C程序函数的形参不可以说明为static型变量

(40)有以下程序

#include <stdio.h>

int main()

{

    FILE *fp;

    int k,n,i,a[6]={1,2,3,4,5,6};

    fp=fopen("d2.dat","w");

    for (i=0; i<6; i++) fprintf(fp,"%d\n",a[i]);

    fclose(fp);

    fp=fopen("d2.dat","r");

    for (i=0; i<3; i++) fscanf(fp,"%d%d",&k,&n);

    fclose(fp);

    printf("%d,%d\n",k,n);

    return 0;

}

程序运行后的输出结果是

A)1,2                    B)3,4                     C)5,6                       D)123,456 

二、程序填空题(18分)

下面程序中函数fun的功能是检查一个字符串是否是回文,当字符串是回文时,函数返回字符串yes!;否则函数返回字符串no!,并在主函数中输出。所谓回文即正向与反向的拼写都一样,例如:adgda。

请在程序的下画线处填入正确的内容并把下画线删除,使程序得出正确的结果。

注意:部分源程序在文件BLANK1.C中。不得增行或删行,也不得更改程序的结构。

试题程序:

#include <stdio.h>
#include <string.h>
/**********found**********/
___1___ fun(char  *str)
{
   char *p1,*p2;
   unsigned int  i,t=0;
   p1=str;  
/**********found**********/
   p2=___2___;
   for (i=0;i<=strlen(str)/2;i++)
      if(*p1++!=*p2--)
      {  t=1; break;  }
/**********found**********/
   if (___3___)  return ("yes!");
   else    return ("no!");
}
int main()
{ 
   char  str[50];
   printf("Input:");  
   scanf("%s",str);
   printf("%s\n",fun(str) );
   return 0;
}

三、程序修改题(18分)

下列给定程序中,函数fun的功能是:根据下面的公式求π的近似值。形参n给出了公式右边的项数,如n=4表示π/4=1-1/3+1/5-1/7。例如,给定实参项数的值为5000,则程序运行后,输出为PI = 3.1413927。

请改正程序中的错误,使它能得出正确的结果。注意:部分源程序在文件MODI1.C中,不要改动main函数,不得增行或删行,也不得更改程序的结构!

试题程序:

#include <stdio.h>
double fun(int n)
{
    double pi = 0.0;
    int i,f=1;
    for (i=1;i<=n;i++)
    {   
/*************found**************/
         pi = pi + f/(2*i-1); 
         f = -f; 
    }
/*************found**************/
    return pi; 
}
int main()
{ 
    printf("PI = %.7lf\n",fun(5000));
    return 0;
}

四、程序设计题(24分)

请编写函数int fun(int n),其功能是判断正整数n是否素数,若是返回“1”,否则,返回“0”。所谓素数是指一个大于1的自然数,该数除了1和它本身以外不再有其他的因数。例如,2、3、5、7等数是素数,而4、6、8、9等数不是素数。

注意:部分源程序在文件PROG1.C中。请勿改动主函数main和其它函数中的任何内容,仅在函数fun的花括号中填入你编写的若干语句。

试题程序:

#include <stdio.h>
#include <math.h>
int fun(int n)
{


}
int main()
{ 
   int i;
   printf("%4d",2);
   for (i=3;i<100;i=i+2)
       if (fun(i)==1)
           printf("%4d",i);
   printf("\n");
   return 0;
}
一、选择题
( 1)~(10)  :DCBAB  DADBA
(11)~(20) :CCDCA  CBCDA
(21)~(30) :BBACD  CDBBD
(31)~(40) :DCBBD  ABDAC
二、程序填空题
    (1) char  *
    (2) str+strlen(str)-1
    (3) t==0或 ! t
三、程序改错题
    (1)  pi = pi + 1.0*f/(2*i-1);
    (2)  return 4*pi;
四、程序设计题
       int i,k;
    k=(int)sqrt(1.0*n);
    for (i=2;i<=k;i++)
        if (n%i==0) break;
    if (i>k)
        return 1;
    else
        return 0;
参考答案:

标签:int,double,试卷,程序,C语言,printf,fun,include,模拟
From: https://www.cnblogs.com/cs-whut/p/16875797.html

相关文章

  • 2022.11.09 NOIP2022 模拟赛六
    科学Source:CF461CApplemanandaSheetofPaper,*2200。注意到对于\(p\le\lfloor\frac{now}{2}\rfloor\),直接暴力维护的复杂度是对的。而对于其\(>\)的情况,翻转......
  • 11.7 模拟赛题解
    幸终简要题意给定一棵树,\(1\)号节点为根节点,记\(d_i\)为\(i\)号节点到根节点最短路径所经过的边数,\(mxd=max_{i=1}^nd_i\)。现在要把这棵树剖分成若干条链,每条链链......
  • C语言二分查找
    #include<stdio.h>intbinary_search(intarr[],intk,intsz){intleft=0;intright=sz-1;while(left<=right){intmid=(left+right)/2;if(arr[mid]<k){ left=mi......
  • R语言用隐马尔可夫Profile HMM模型进行生物序列分析和模拟可视化
    相关视频:马尔可夫链原理可视化解释与R语言区制转换Markovregimeswitching实例​​马尔可夫​​链原理可视化解释与R语言区制转换Markov regime switching实例,时长07:25......
  • C语言指针运算
    指针运算指针可以加减运算,但不可以乘除运算。在指针中p++并不是加一,而是以素的值为单位加一,指向下一个单位,加多少字节 要看类型是什么。在指针变量名字前面加*比......
  • C语言——程序环境和预处理
    程序的翻译环境和执行环境编译+链接预处理一.程序的翻译环境和执行环境在ANSIC标准的任何一种实现中,存在两种不同的环境:翻译环境:该环境中源代码会被转换为可执行的机器......
  • 模拟电路 - 具有快速建立时间的非线性低通滤波器
    Nonlinearlowpassfilter(fastsettlingtime)......
  • 计算机等级考试二级C语言模拟试卷(四)
    一、选择题(每小题1分,共40分)   (1)下列关于栈叙述正确的是A)栈顶元素最先能被删除                 B)栈顶元素最后才能被删除C)......
  • C语言选择结构的执行条件
    在C语言中,有些细节常常被忽略:选择结构的执行条件我们知道,if()和elseif()是判断程序是否执行的函数。需要注意的是,这两个函数判断的是括号内的值是逻辑真(true)还是逻辑......
  • C语言的自增自减运算符
    简单去理解,C语言的自增自减运算符的最终结果就是对自身进行加一和减一操作。但是当++、--作为后缀时则具有延后性,可能对程序有一些副作用,并且其的优先级也会对程序产生一......