電腦等級考試二級C語言模擬試卷(十)

来源:https://www.cnblogs.com/cs-whut/archive/2022/11/12/16884013.html
-Advertisement-
Play Games

一、SpringBoot是什麼 在瞭解SpringBoot之前,我們需要先來回顧一下Spring。 Spring是一個輕量級的WEB應用開發的框架,它的初衷是為了簡化企業級應用開發的複雜性,說白了就是為了簡化開發。但是隨著Spring的不斷發展,它擴展的東西越來越多,導致其配置方面也越來越複雜,在每 ...


一、選擇題(每小題1分,共40分)

(1)下列敘述中正確的是

A)一個邏輯數據結構只能有一種存儲結構

B)數據的邏輯結構屬於線性結構,存儲結構屬於非線性結構

C)一個邏輯數據結構可以有多種存儲結構,且各種存儲結構不影響數據處理的效率

D)一個邏輯數據結構可以有多種存儲結構,且各種存儲結構影響數據處理的效率

(2)線性表的順序存儲結構和線性表的鏈式存儲結構分別是

A)順序存取的存儲結構、隨機存取的存儲結構

B)隨機存取的存儲結構、順序存取的存儲結構

C)隨機存取的存儲結構、隨機存取的存儲結構

D)任意存取的存儲結構、任意存取的存儲結構

(3)某二叉樹的前序遍歷為EFHIGJK,中序遍歷為HFIEJKG,則該二叉樹根的右子樹的根是

A)E                B)F                     C)G                   D)H

(4)已知數據表A中每個元素距其最終位置不遠,為節省時間,應採用的演算法是

A)堆排序     B)直接插入排序  C)快速排序       D)直接選擇排序

(5)在面向對象的方法中,類的實例稱為

A) 對象          B)實體                C)屬性                D)方法

(6)在軟體工程中,白盒測試法可用於測試程式的內部結構。此方法將程式看做是

A) 迴圈的集合 B)地址的集合   C)路徑的集合     D)目標的集合

(7)檢查軟體產品是否符合需求定義的過程稱為

A)確認測試   B)集成測試    C)系統測試      D)驗收測試

(8)程式流程圖(PFD)中的箭頭代表的是

A)數據流      B)控制流        C)調用關係      D)組成關係

(9)資料庫系統的核心是

A)數據模型    B)資料庫管理系統    C)資料庫      D)資料庫管理員

(10)設有關係R,S和T如下。關係T是由關係R和S經過哪種操作得到的

 

A)R∪S       B)R – S          C)R×S          D)R∞S

(11) 下列C語言常量中,錯誤的是

A) 0xFF                    B) 1.2e0.5                    C) 2L                         D) ‘\72’

(12) 下列選項中,合法的C語言關鍵字是

A) VAR                     B) cher                         C) integer                 D) default

(13) 若a為int類型,且其值為3,則執行完表達式a+=a-=a*a後,a的值是

A) -12                      B) -3                              C) 6                          D) 9

(14)設有定義 int x=3,y=3,t;,語句 t=++x||++y;執行後,y的值為

A) 1                       B) 3                                C) 4                           D) 不定值

(15)設有定義int  x=3;  char  z='a'; ,則語句printf("%d\n", (x&1)&&(z<'z'));的輸出結果是

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

(16) 若執行以下程式時從鍵盤上輸入9,則輸出結果是

int main()

{

    int  n;

    scanf("%d",&n);

    if(n++<10)   printf("%d\n",n);

    else  printf("%d\n",n--);

    return 0;

}

A)8                        B)9                           C) 10                    D) 11

(17) 若a、 b、c1、c2、x、y、均是整型變數,正確的switch語句是

A) swich(a+b);                                            B) switch(a*a+b*b)      

     {  case 1:y=a+b; break;                             {   case 3:    

      case 0:y=a-b; break;                                    case 1:y=a+b;break;

    }                                                                     case 3:y=b-a,break;

                                                                   }

C) switch  a                                               D) switch(a-b)

     {  case c1 :y=a-b; break                           {   default:y=a*b;break

         case c2: x=a*d; break                              case 3:case 4:x=a+b;break

        default:x=a+b;                                           case 10:case 11:y=a-b;break;

      }                                                              }

(18) 有如下程式

int main()

{

    int a=2,b=-1,c=2;

    if(a<b)

      if(b<0)   c=0;

    else    c++;

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

 

    return 0;

}

該程式的輸出結果是

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

(19) 有如下程式

int main()

{

    int   x=1,a=0,b=0;

    switch(x){

      case 0:   b++;

      case 1:   a++;

      case 2:   a++;b++;

    }

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

    return 0;

}

該程式的輸出結果是

A) a=1,b=0         B) a=1,b=1         C) a=2,b=1       D) a=2,b=2

(20) 有如下程式

int main()

{

    int  x=3;

    do

    {

        printf("%d ",x-=2);

    }while (!(--x));

    return 0;

}

其輸出結果是

A) 1                  B) 1  -2               C) 3  0               D) 死迴圈

(21) 若變數c為char類型,能正確判斷出c為小寫字母的表達式是

A) ‘a’<=c<= ‘z’                                     B) (c>= ‘a’)||(c<= ‘z’)

C) (‘a’<=c)and (‘z’>=c)                        D) (c>= ‘a’)&&(c<= ‘z’)

(22) 設有說明語句:char a=’\72’;則變數a

A) 包含1個字元      B) 包含2個字元      C) 包含3個字元     D) 說明不合法

(23) 有如下說明int  a[10]={1,2,3,4,5,6,7,8,9,10},*p=a;,則數值為9的表達式是

A) *P+9            B) *(P+8)           C) *P+=9          D) P+8

(24) 下列各函數首部中,正確的是

A) void play(var :Integer,var b:Integer)

B) void play(int a,b)

C) void play(int a,int b)

D) Sub play(a as integer,b as integer)

(25) 下列程式段的輸出結果是

void fun(int  *x, int  *y)

{   printf("%d %d ", *x, *y); *x=3; *y=4;}

int main()

{

   int  x=1,y=2;

   fun(&y,&x);

   printf("%d %d ",x, y);

   return 0;

}

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

(26) 設有定義 int  a[]={1,2,3,4,5,6,7,8,9,0,},*p=a;,則語句printf("%d\n",*p+9);的輸出結果是

A) 0                     B) 1                      C) 9                    D) 10

(27) 當調用函數時,實參是一個數組名,則向函數傳送的是

A) 數組的長度                                          B) 數組的首地址

C) 數組每一個元素的地址                        D) 數組每個元素中的值

(28) 設有以下說明語句

struct  ex

{  int  x ;  float  y;  char  z ;}  example;

則下麵的敘述中不正確的是

A) struct結構體類型的關鍵字                            B) example是結構體類型名

C) x,y,z都是結構體成員名                                 D) struct  ex是結構體類型

(29) 下列只有在使用時才為該類型變數分配記憶體的存儲類說明是

A) auto和 static                                                 B) auto和 register

C) register和 static                                           D) extern和 register

(30) 若fp是指向某文件的指針,且已讀到文件末尾,則庫函數feof(fp)的返回值是

A) EOF             B) -1                 C) 非零值              D) NULL

(31) 下列程式的輸出結果是

int main()

{

   int  i,  k,  a[10],  p[3];

   k=5;

   for (i=0;i<10;i++)   a[i]=i;

   for (i=0;i<3;i++)    p[i]=a[i *(i+1)];

   for (i=0;i<3;i++)    k+=p[i] *2;

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

   return 0;

}

A) 20                             B) 21                           C) 22                           D)23

(32) 下列程式的輸出結果是

int main()

{

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

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

       printf("%d,",x[i][2-i]);

   return 0;

}

A) 1,4,7,              B) 1,5,9,                C) 3,5,7,                        D)3,6,9,

 (33) 下列程式的輸出結果是

int main()

{

   int  a[3][3]={ {1,2},{3,4},{5,6} },i,j,s=0;

   for(i=1;i<3;i++)

    for(j=0;j<=i;j++)s+=a[i][j];

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

   return 0;

}

A) 18                            B) 19                                  C) 20                           D)21

 (34) 下列程式的輸出結果是

int main()

{

   char w[][10]={"ABCD","EFGH","IJKL","MNOP"},k;

   for(k=1;k<3;k++) printf("%s\n",w[k]);

   return 0;

}

A) ABCD                 B) ABCD                            C) EFG                        D) EFGH

     FGH                       EFG                                    JK                                 IJKL

     KL                           IJ                                        O

                                    M

 (35) 當執行下麵的程式時,如果輸入ABC,則輸出結果是

int main()

{

   char  ss[10]="1,2,3,4,5";

   gets(ss);

   strcat(ss, "6789");

   printf("%s\n",ss);

   return 0;

}

A) ABC67              B) ABC6789            C) ABC456789              D) 12345ABC6

 (36) 下列程式的輸出結果是

long  fun(int  n)

{  long  s;

   if(n==1 || n==2)  s=2;

   else s=n-fun(n-1);

   return  s;

}

int main()

{

   printf("%ld\n", fun(3));

   return 0;

}

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

 (37) 下列程式的輸出結果是

#define  SQR(X)  X*X

int main()

{

   int  a=16, k=2, m=1;

   a/=SQR(k+m)/SQR(k+m);

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

   return 0;

}

A) 1                      B) 2                      C) 9                   D) 16

 (38) 若定義了以下函數:

void f(……)

{……

    *p=(double *)malloc( 10*sizeof( double));

……

}

p是該函數的形參,要求通過p把動態分配存儲單元的地址傳回主調函數,則形參p的正確定義應當是

A) double  *p          B) float  **p      C) double  **p         D) float  *p

(39) 下列程式的輸出是

struct  st

{  int  x;  int  *y;};

int main()

{

   int  dt[4]={ 10,20,30,40 };

   struct  st  aa[4]={ 50,&dt[0],60,&dt[0],60,&dt[0],60,&dt[0],};

   struct st *p=aa;

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

   return 0;

}

A) 10                      B) 11             C) 51                D) 60

 (40) 假定建立了以下鏈表結構,指針p、q分別指向如圖所示的結點,則以下可以將q所指結點從鏈表中刪除並釋放該結點的語句組是

     

A) free(q);  p->next=q->next;

B) (*p).next=(*q).next;  free(q);

C) q=(*q).next;  (*p).next=q;  free(q);

D) q=q->next;  p->next=q;  p=p->next; free(p);

二、程式填空題(18分)

給定程式中,函數fun的功能是:逆置數組元素中的值。

例如,若a所指數組中的數據依次為:1、2、3、4、5、6、7、8、9,則逆置後依次為:9、8、7、6、5、4、3、2、1。

請在下劃線處填入正確的內容並將下劃線刪除,使程式得出正確的結果。

註意:不得增行或刪行,也不得更改程式的結構!

#include <stdio.h>
void fun(int a[], int n)
{
    int t;
    /**********found**********/
    if (n< ___1___)  return ;
    else
    {
       t=a[0];  a[0]=a[n-1]; a[n-1]=t;
    /**********found**********/
       fun(___2___ , ___3___);
    }
}
int main()
{
    int  b[9]={1,2,3,4,5,6,7,8,9}, i;
    printf("\nThe original data  :\n");
    for (i=0; i<9; i++)
       printf("%4d ", b[i]);
    printf("\n");
    fun(b, 9);
    printf("\nThe data after invert  :\n");
    for (i=0; i<9; i++)
      printf("%4d ", b[i]);
    printf("\n");
}

三、程式修改題(18分)

給定程式中,函數fun的功能是:將n個無序整數從小到大排序。

請改正函數fun中指定部位的錯誤,使它能得出正確的結果。

註意:不要改動main函數,不得增行或刪行,也不得更改程式的結構。

#include <stdio.h>
#include <stdlib.h>
void fun ( int  n, int  *a )
{  
    int  i, j, p, t;
    for ( j = 0; j<n-1 ; j++ )
    {  
        p = j;
    /************found************/
        for ( i=j+1; i<n-1 ; i++ )
           if ( a[p]>a[i] )
    /************found************/
              t=i;
        if ( p!=j )
        { t=a[j]; a[j]=a[p]; a[p]=t; }
    }
}
void putarr(int n,  int *z)
{  
    int  i;
    for (i=1; i<=n; i++,z++)
    {  
        printf( "%4d", *z );
        if (!(i%10))  printf("\n");
    } 
    printf("\n");
}
int main()
{  
    int  aa[20]={9,3,0,4,1,2,5,6,8,10,7}, n=11;
    printf( "\n\nBefore sorting %d numbers:\n", n ); 
    putarr( n, aa );
    fun( n, aa );
    printf( "\nAfter sorting %d numbers:\n", n ); 
    putarr( n, aa );
    return 0;
}

四、程式設計題(24分)

編寫函數fun,它的功能是:統計各年齡段的人數並存到b數組中,n個人員的年齡放在a數組中。年齡為1到9的人數存到b[0]中,年齡為10到19的人數存到b[1],年齡為20到29的人數存到b[2],年齡為30到39的人數存到b[3],年齡為40到49的人數存到b[4],年齡為50歲以上的人數存到b[5]中。

例如,當a數組中的數據為:9、18、27、38、59、33、14、75、38。調用該函數後,b數組中存放的數據應是:1、2、1、3、0、2。

註意:請勿改動主函數main和其他函數中的任何內容,僅在函數fun的花括弧中填入你編寫的若幹語句。

#include <stdio.h>
void NONO(void);
void fun(int a[], int b[], int n)
{
    
}
int main()
{
    int i,a[10]={9,18,27,38,59,33,14,75,38}, b[6];
    fun(a, b, 9);
    printf("The result is: ");
    for (i=0; i<6; i++)
        printf("%d ", b[i]);
    printf("\n");
    NONO();
    return 0;
}
void NONO(void)
{
    FILE *rf, *wf ;
    int a[10], b[6], i, j ;
    rf = fopen("in1.dat", "r") ;
    wf = fopen("out1.dat","w") ;
    for(i = 0 ; i < 10 ; i++)
    {
      for(j = 0 ; j < 10 ; j++)
         fscanf(rf, "%d,", &a[j]) ;
      fun(a, b, 10) ;
      for(j = 0 ; j < 6 ; j++)
         fprintf(wf, "%d ", b[j]) ;
      fprintf(wf, "\n") ;
    }
    fclose(rf);
    fclose(wf);
}
一、選擇題
( 1)~( 5): DBCBA          ( 6)~(10):  CABBB
(11)~(15): BDABB          (16)~(20):  CDCCB
(21)~(25): DABCD         (26)~(30):   DBBBC
(31)~(35): BCADB         (36)~(40):   ABCCB
二、程式填空題
    (122)a+1  或 &a[1]    (3)n-2
三、程式修改題
    for (i=j+1; i<n ; i++)
    p=i;
四、程式設計題
    void fun(int a[], int b[], int n)
    {
        int i;
        for (i=0; i<6; i++)
            b[i] = 0;
        for (i=0; i<n;i++)
            if (a[i] >= 50) b[5]++;
            else b[a[i]/10]++;
    } 
參考答案:
您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • 好家伙, 本篇內容為《JS高級程式設計》第三章學習筆記 1.Number類型 從名稱中我們可以得出,這是一個存放數值的類型, 不同的數值類型相應地也有不同的數值字面量格式 Number類型可以儲存不同進位的數(不常用就是了) 八進位:在數前加一個零("0"),後續的數字中不能有大於7的數值,否則八進 ...
  • Servlet05 14.HttpServletRequest HttpServletRequest對象代表客戶端的請求 當 客戶端/瀏覽器 通過HTTP協議訪問伺服器時,HTTP請求頭中的所有信息都封裝在這個對象中 通過這個對象的方法,可以獲取客戶端的信息 HttpServletRequest類圖 ...
  • 本篇文章主要分享idea的常用快捷鍵和idea 的安裝和破解方式,親測可以破解,破解方式也是非常的簡單,第一步執行激活腳本,第二步輸入激活碼就大功告成啦,下麵是詳細的步驟。 下載 官方下載地址:https://www.jetbrains.com/idea/download 安裝 雙擊安裝包,然後一直 ...
  • 一款好用的插件(Maven-Helper) 前言 博主在整合log4j日誌的時候,發現啟動不了項目,報錯信息,大致是這樣的: 意思是在 logback-classic-1.2.3.jar 和 log4j-slf4j-impl-2.13.3.jar 中發現有同路徑及同類名的文件,spring不知道掃哪 ...
  • 提高Docker的下載速度 修改 /etc/docker/daemon.json 文件 vi /etc/docker/daemon.json 配置加速器 { "registry-mirrors": ["https://registry.docker-cn.com", "http://hub-mirr ...
  • 列表中元素位置的索引用的是L.index 本文實例講述了Python去除列表中重覆元素的方法。分享給大家供大家參考。具體如下: 比較容易記憶的是用內置的set l1 = ['b','c','d','b','c','a','a'] l2 = list(set(l1)) print (l2) 還有一種據 ...
  • 一、通過官網進行創建 官網創建鏈接:https://start.spring.io/ 1.官網頁面配置: Project:我們需要選擇項目類型,我使用的是Maven項目; Language:使用的是Java語言,選擇Java; SpringBoot:選擇版本; Project Metadata:元數 ...
  • 前言 嗨嘍,大家好呀~這裡是愛看美女的茜茜吶 又到了學Python時刻~ 我又來了!今天整個好玩的,你們肯定喜歡~ 咱們上班累了,不得好好犒勞一下自己,是吧 ! 於是我整了一手採集附近洗jio的店子,浴皇大帝們,沖鴨~ 話不多說,沖!兄弟們,都是正規的 正規的! 使用環境 python 3.8 解釋 ...
一周排行
    -Advertisement-
    Play Games
  • 移動開發(一):使用.NET MAUI開發第一個安卓APP 對於工作多年的C#程式員來說,近來想嘗試開發一款安卓APP,考慮了很久最終選擇使用.NET MAUI這個微軟官方的框架來嘗試體驗開發安卓APP,畢竟是使用Visual Studio開發工具,使用起來也比較的順手,結合微軟官方的教程進行了安卓 ...
  • 前言 QuestPDF 是一個開源 .NET 庫,用於生成 PDF 文檔。使用了C# Fluent API方式可簡化開發、減少錯誤並提高工作效率。利用它可以輕鬆生成 PDF 報告、發票、導出文件等。 項目介紹 QuestPDF 是一個革命性的開源 .NET 庫,它徹底改變了我們生成 PDF 文檔的方 ...
  • 項目地址 項目後端地址: https://github.com/ZyPLJ/ZYTteeHole 項目前端頁面地址: ZyPLJ/TreeHoleVue (github.com) https://github.com/ZyPLJ/TreeHoleVue 目前項目測試訪問地址: http://tree ...
  • 話不多說,直接開乾 一.下載 1.官方鏈接下載: https://www.microsoft.com/zh-cn/sql-server/sql-server-downloads 2.在下載目錄中找到下麵這個小的安裝包 SQL2022-SSEI-Dev.exe,運行開始下載SQL server; 二. ...
  • 前言 隨著物聯網(IoT)技術的迅猛發展,MQTT(消息隊列遙測傳輸)協議憑藉其輕量級和高效性,已成為眾多物聯網應用的首選通信標準。 MQTTnet 作為一個高性能的 .NET 開源庫,為 .NET 平臺上的 MQTT 客戶端與伺服器開發提供了強大的支持。 本文將全面介紹 MQTTnet 的核心功能 ...
  • Serilog支持多種接收器用於日誌存儲,增強器用於添加屬性,LogContext管理動態屬性,支持多種輸出格式包括純文本、JSON及ExpressionTemplate。還提供了自定義格式化選項,適用於不同需求。 ...
  • 目錄簡介獲取 HTML 文檔解析 HTML 文檔測試參考文章 簡介 動態內容網站使用 JavaScript 腳本動態檢索和渲染數據,爬取信息時需要模擬瀏覽器行為,否則獲取到的源碼基本是空的。 本文使用的爬取步驟如下: 使用 Selenium 獲取渲染後的 HTML 文檔 使用 HtmlAgility ...
  • 1.前言 什麼是熱更新 游戲或者軟體更新時,無需重新下載客戶端進行安裝,而是在應用程式啟動的情況下,在內部進行資源或者代碼更新 Unity目前常用熱更新解決方案 HybridCLR,Xlua,ILRuntime等 Unity目前常用資源管理解決方案 AssetBundles,Addressable, ...
  • 本文章主要是在C# ASP.NET Core Web API框架實現向手機發送驗證碼簡訊功能。這裡我選擇是一個互億無線簡訊驗證碼平臺,其實像阿裡雲,騰訊雲上面也可以。 首先我們先去 互億無線 https://www.ihuyi.com/api/sms.html 去註冊一個賬號 註冊完成賬號後,它會送 ...
  • 通過以下方式可以高效,並保證數據同步的可靠性 1.API設計 使用RESTful設計,確保API端點明確,並使用適當的HTTP方法(如POST用於創建,PUT用於更新)。 設計清晰的請求和響應模型,以確保客戶端能夠理解預期格式。 2.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...