電腦等級考試二級C語言上機題集(第46~50套)

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

Tomcat02 4.IDEA開發JavaWeb工程 4.1開發javaweb工程&配置Tomcat&啟動項目 需求:使用idea開發javaweb工程fishWeb,並將網頁部署到fishWeb工程 點擊File-New-Project 在彈出的框中點擊 Java,點擊next 寫入你的工程名字, ...


第46套

1.程式填空題

給定程式的功能是調用函數fun建立班級通訊錄。通訊錄中記錄每位學生的編號、姓名和電話號碼。班級的人數和學生的信息從鍵盤讀入,每個人的信息作為一個數據塊寫到名為myfile3.dat的二進位文件中。

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

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

#include  <stdio.h>
#include  <stdlib.h>
#define  N 5
typedef  struct
{  
   int  num;
   char  name[10];
   char  tel[10];
}STYPE;
void check();
/**********found**********/
int fun(___1___ *std)
{
   /**********found**********/
   ___2___  *fp;     
   int  i;
   if((fp=fopen("myfile3.dat","wb"))==NULL)
      return (0);
   printf("\nOutput data to file !\n");
   for(i=0; i<N; i++)
   /**********found**********/
      fwrite(&std[i], sizeof(STYPE), 1, _3_);
   fclose(fp);
   return (1);
}
int main()
{  
   STYPE s[10]={{1,"aaa","1111"},{1,"bbb","2222"},
        {1,"ccc","3333"}, {1,"ddd","4444"},
        {1,"eee","5555"}};
   int  k;
   k=fun(s);
   if (k==1)
   {  printf("Succeed!");  check(); }
   else
      printf("Fail!");
   return 0;
}
void check()
{  
   FILE  *fp;     
   int  i;
   STYPE  s[10];
   if((fp=fopen("myfile3.dat","rb"))==NULL)
   { printf("Fail !!\n"); exit(0); }
   printf("\nRead file and output to screen :\n");
   printf("\n   num    name      tel\n");
   for(i=0; i<N; i++)
   {  
      fread(&s[i],sizeof(STYPE),1, fp);
      printf("%6d %s %s\n",s[i].num,s[i].name,s[i].tel);
   }
   fclose(fp);
}

2.程式修改題

給定程式中,函數fun的功能是:從低位開始取出長整數s中奇數位上的數,依次構成一個新數放在t中。高位仍在高位,低位仍在低位。

例如,若s=7654321,則t=7531。

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

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

#include <stdio.h>
/************found************/
void fun (long  s, long t)
{   
    long   sl=10;
    *t = s % 10;
    while ( s > 0)
    {   
        s = s/100;
        *t = s%10 * sl + *t;
    /************found************/
        sl = sl*100;
    }
}
int main()
{  
    long s, t;
    printf("\nPlease enter s:"); 
    scanf("%ld", &s);
    fun(s, &t);
    printf("The result is: %ld\n", t);
    return 0;
}

3.程式設計題

編寫函數fun,它的功能是:將兩個兩位正整數a、b合併形成一個整數存放在c中,合併的方式是:將a數的十位和個位數依次放在c數的個位和百位上,將b數的十位和個位數依次放在c數的千位和十位上。

例如,當a=45,b=12時,調用該函數後,c=1524。

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

#include <stdio.h>
void NONO(void);
void fun(int a, int b, long *c)
{

}
int main()
{
    int a,b; long c;
    printf("Input a b:");
    scanf("%d%d", &a, &b);
    fun(a, b, &c);
    printf("The result is: %d\n", c);
    NONO();
    return 0;
}
void NONO(void)
{/* 本函數用於打開文件,輸入數據,調用函數,輸出數據,關閉文件。 */
    FILE *rf, *wf ;
    int i, a,b ;
    long c ;
    rf = fopen("in.dat", "r") ;
    wf = fopen("out.dat","w") ;
    for(i = 0 ; i < 10 ; i++)
    {
       fscanf(rf, "%d,%d", &a, &b) ;
       fun(a, b, &c) ;
       fprintf(wf, "a=%d,b=%d,c=%ld\n", a, b, c) ;
    }
    fclose(rf) ;
    fclose(wf) ;
}
1.(1)STYPE   (2)FILE   (3)fp
2void fun (long  s, long *t)
    sl = sl*10;
3void fun(int a, int b, long *c)
     {
           *c=1000*(b/10)+100*(a%10)+10*(b%10)+a/10;
      }
第46套參考答案

第47套

1.程式填空題

給定程式中,人員的記錄由編號和出生年、月、日組成,N名人員的數據已在主函數中存入結構體數組std中,且編號唯一。函數fun的功能是:找出指定編號人員的數據,作為函數值返回;若指定編號不存在,返回數據中的編號為空串。

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

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

#include <stdio.h>
#include <string.h>
#define  N  8
typedef  struct
{  
  char  num[10];
  int  year,month,day ;
}STU;
/**********found**********/
___1___ fun(STU  *std, char  *num)
{  
  int  i;       
  STU  a={"",9999,99,99};
  for (i=0; i<N; i++)
  /**********found**********/
    if (strcmp(___2___,num)==0)
  /**********found**********/
       return (___3___);
  return  a;
}
int main()
{  
  STU std[N]={{"111",1984,2,15},{"222",1983,9,21},
     {"333",1984,9,1},{"444",1983,7,15},
     {"555",1984,9,28},{"666",1983,11,15},
     {"777",1983,6,22},{"888",1984,8,19}};
  STU  p;         
  char  n[10]="666";
  p=fun(std,n);
  if(p.num[0]==0)
       printf("\nNot found !\n");
  else
  {   
    printf("\nSucceed !\n  ");
    printf("%s %d-%d-%d\n",p.num,p.year,p.month,p.day);
  }
  return 0;
}

2.程式修改題

給定程式中,函數fun的功能是:用冒泡法對6個字元串按由小到大的順序進行排序。

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

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

#include <stdio.h>
#include <string.h>
#define MAXLINE 20
void fun(char *pstr[6])
{   
    int  i, j ;
    char *p ;
    for (i = 0 ; i < 5 ; i++) 
    {
    /**************found**************/
      for (j=i+1, j<6, j++)
      {
        if(strcmp(*(pstr+i), *(pstr+j))>0)
        {
            p = *(pstr + i) ;
    /**************found**************/
            *(pstr + i) = pstr + j ;
            *(pstr + j) = p ;
        }
      }
    }
}
int main()
{   
    int i ;
    char *pstr[6], str[6][MAXLINE] ;
    for(i = 0; i < 6 ; i++) pstr[i] = str[i] ;
    printf("\nEnter 6 string(1 string at each line):\n");
    for(i=0 ; i<6; i++) scanf("%s", pstr[i]);
    fun(pstr) ;
    printf("The strings after sorting:\n") ;
    for (i = 0 ; i < 6 ; i++) printf("%s\n", pstr[i]);
    return 0;
}

3.程式設計題

編寫函數fun,它的功能是:求出ss所指字元串中指定字元的個數,並返回此值。

例如,若輸入字元串:123412132,輸入字元1,則輸出3。

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

#include <stdio.h>
#include <string.h>
#define  M 81
void NONO(void);
int fun(char *ss, char c)
{

}
int main()
{
   char  a[M], ch;
   printf("\nPlease enter a string:");
   gets(a);
   printf("\nPlease enter a char:");
   ch = getchar();
   printf("\nThe number of the char is: %d\n",fun(a,ch));
   NONO();
   return 0;
}
void NONO(void)
{/* 本函數用於打開文件,輸入測試數據,調用fun函數,輸出數據,關閉文件。*/
   int i ;
   FILE *rf, *wf ;
   char a[M], b[M], ch ;
   rf = fopen("in.dat","r") ;
   wf = fopen("out.dat","w") ;
   for(i = 0 ; i < 10 ; i++)
   {
     fscanf(rf, "%s", a) ;
     fscanf(rf, "%s", b) ;
     ch = *b ;
     fprintf(wf, "%c=%d\n", ch, fun(a, ch)) ;
   }
   fclose(rf) ;
   fclose(wf) ;
}
1.(1)STU   (2)std[i].num   (3)std[i]
2for (j=i+1; j<6 ; j++)
    *(pstr + i) = *(pstr + j) ;
3int fun(char *ss, char c)
     {
         int i,n=0;
         for (i=0;ss[i]!='\0';i++)
             if (ss[i]==c) n++;
         return n;
      }
第47套參考答案

第48套

1.程式填空題

給定程式中,函數fun的功能是:計算出帶頭結點的單向鏈表中各結點數據域之和作為函數值返回。

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

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

#include <stdio.h>
#include <stdlib.h>
#define  N  8
typedef  struct list
{  
    int  data;
    struct list  *next;
} SLIST;
SLIST *creatlist(int  *);
void outlist(SLIST  *);
int fun(SLIST  *h)
{  
    SLIST  *p;         
    int  s=0;
    p=h->next;
    while(p)
    {
    /**********found**********/
       s+= p->___1___;
    /**********found**********/
       p=p->___2___;
    }
    return s;
}
int main()
{  
    SLIST  *head;
    int  a[N]={12,87,45,32,91,16,20,48};
    head=creatlist(a);    
    outlist(head);
    /**********found**********/
    printf("\nsum=%d\n", fun(___3___));
    return 0;
}
SLIST *creatlist(int  a[])
{  
    SLIST  *h,*p,*q;        
    int  i;
    h=p=(SLIST *)malloc(sizeof(SLIST));
    for(i=0; i<N; i++)
    {  
       q=(SLIST *)malloc(sizeof(SLIST));
       q->data=a[i];  p->next=q;  p=q;
    }
    p->next=0;
    return  h;
}
void outlist(SLIST  *h)
{  
    SLIST  *p;
    p=h->next;
    if (p==NULL)  printf("The list is NULL!\n");
    else
    {  
        printf("\nHead  ");
        do {   
            printf("->%d", p->data); 
            p=p->next;  
        } while(p!=NULL);
        printf("->End\n");
    }
}

2.程式修改題

給定程式中,函數fun的功能是:根據形參m,計算

      S=1+1/2+1/3+…+1/m

例如,若輸入5,則應輸出2.283333。

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

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

#include <stdio.h>
double fun(int m)
{
    double t = 1.0;
    int i;
    for( i = 2; i <= m; i++ )
    /**********found**********/
       t +=  1/i;
    /**********found**********/
    return t
}
int main()
{
    int m;
    printf( "\nPlease enter 1 integer number:" );
    scanf(  "%d", &m );
    printf( "\nThe result is %lf\n", fun( m ) );
    return 0;
}

3.程式設計題

編寫函數fun,它的功能是:統計一個長度為2的字元串substr在另一個字元串sub中出現的次數。

例如,假定輸入的字元串為:asd asasdfg asd as zx67 asd mklo,子字元串為as,則應輸出6。

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

#include <stdio.h>
#include <string.h>
int fun(char *str,char *substr)
{

}
int main()
{
  char str[81],substr[3];
  int n;
  printf("輸入主字元串: ");
  gets(str);
  printf("輸入子字元串: ");
  gets(substr);
  puts(str);
  puts(substr);
  n=fun(str,substr);
  printf("n=%d\n",n);
  NONO();
  return 0;
}
void NONO(void)
{
/* 請在此函數內打開文件,輸入測試數據,調用 fun 函數,
輸出數據,關閉文件。 */
  char str[81],substr[3], ch;
  int n,len, i = 0;
  FILE *rf, *wf ;
  rf = fopen("in.dat","r") ;
  wf = fopen("out.dat","w") ;
  while(i < 5)
  {
    fgets(str, 80, rf) ;
    fgets(substr, 10, rf) ;
    len = strlen(substr) - 1 ;
    ch = substr[len] ;
    if(ch == '\n' || ch == 0x1a) substr[len] = 0 ;
    n=fun(str,substr);
    fprintf(wf, "%d\n", n) ;
    i++ ;
  }
  fclose(rf) ;
  fclose(wf) ;
}
1.(1)data   (2)next   (3)head
2. t +=  1.0/i;
    return t;
3int fun(char *str,char *substr)
     {
          int i,n=0;
          for (i=0;str[i]!='\0' && str[i+1]!='\0';i++)
             if (str[i]==substr[0] && str[i+1]==substr[1])
          n++;
          return n;
      }
第48套參考答案

第49套

1.程式填空題

給定程式中,函數fun的功能是:把形參a所指數組中的偶數按原順序依次存放到a[0]、a[1]、a[2]、……中,把奇數從數組中刪除,偶數個數通過函數值返回。

例如,若a所指數組中的數據最初排列為:9、1、4、2、3、6、5、8、7,刪除奇數後a所指數組中的數據為:4、2、6、8,函數返回值為4。

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

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

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

2.程式修改題

給定程式中,函數fun的功能是:根據形參m,計算

t=1-1/2-1/3-…-1/m

例如,若主函數中輸入5,則應輸出-0.283333。

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

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

#include <stdio.h>
double fun(int m)
{
    /**********found**********/
    double t;
    int i;
    for( i = 2; i <= m; i++ )
    /**********found**********/
       t = 1.0-1 /i;
    return t;
}
int main()
{
    int m ;
    printf( "\nPlease enter 1 integer numbers:\n" );
    scanf(  "%d", &m);
    printf( "\nThe result is %f\n", fun(m));
    return 0;
}

3.程式設計題

編寫函數fun,它的功能是:刪除字元串中的所有空格。

例如,主函數中輸入“asd af aa z 67”,則輸出為“asdafaaz67”。

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

#include <stdio.h>
void NONO(void);
void fun(char *str)
{

}
int main()
{
    char str[81];
    printf("Input a string:") ;
    gets(str);
    puts(str);
    fun(str);
    printf("*** str: %s\n",str);
    NONO();
    return 0;
}
void NONO(void)
{
/* 請在此函數內打開文件,輸入調試數據,調用 fun 函數,
   輸出數據,關閉文件。 */
    char str[81];
    int n = 0;
    FILE *rf, *wf ;
    rf = fopen("in.dat","r") ;
    wf = fopen("out.dat","w") ;
    while(n < 10)
    {
       fgets(str, 80, rf);
       fun(str);
       fprintf(wf, "%s", str) ;
       n++ ;
    }
    fclose(rf) ;
    fclose(wf) ;
}
1.(1)a[i]%22)a[j]   (3)j
2double t=1.0;
   t = t-1.0/i;
3void fun(char *str)
     {
         int
              
您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • #前言 Qt原本的視窗雖然可以通過QSS樣式進行美化,但是只是對客戶區有用,對於客戶區是無效的。所以想做出一個比較好看的程式,還得自己重寫實現無邊框視窗。 Qt實現無邊框其實一句代碼就可以,但是視窗自帶的縮放,移動功和關閉功能都會沒有,需要自己重寫。 setWindowFlags(Qt::Frame ...
  • nuget打包靜態資源的問題 前段時間做了個區劃包, 爬了點數據生成了一個 region-tree.json 文件, 存放了全國一直到街道級的區劃數據 然後又寫了點代碼解析處理這個文件 當時的 csproj 中對這個資源是這樣引用的 <ItemGroup> <None Include="region ...
  • 1、概念 所謂表驅動法(Table-Driven Approach)簡而言之就是用查表的方法獲取數據。此處的“表”通常為數組,但可視為資料庫的一種體現。根據字典中的部首檢字表查找讀音未知的漢字就是典型的表驅動法,即以每個字的字形為依據,計算出一個索引值,並映射到對應的頁數。相比一頁一頁地順序翻字典查 ...
  • 嵌入式系統安全的一些解決方法及缺陷 外部硬體安全模塊:在主SoC之外包含一個專用的硬體安全模塊或可信元件,e.g. 手機的SIM卡。==隔離僅限於可以從非易失性存儲器運行的相對靜態程式== 內部硬體安全模塊:管理加密操作和密鑰存儲的硬體模塊;通用的處理引擎,放在主處理器旁邊,它使用自定義硬體邏輯來防 ...
  • 2022-11-05 一、自增長的鍵值問題 1、說明: 將在資料庫表單中添加數據的自增長的欄位返回給用戶 2、使用方式: 在預編譯語句中,除了要傳入sql語句外,還要傳入一個參數“Statement.RETURN_GENERATED_KEYS”。其中“Statement”表示的是一個介面,“RETU ...
  • 11月4日,HDC2022華為開發者大會在東莞松山湖舉辦。在本次大會的HMS Core創新圖形能力分論壇中,HMS Core重點介紹了其在3D技術領域的創新應用方向,其中3D建模服務展示了創新的自動骨骼綁定功能,其具有高度自動化,超強魯棒性,優質的蒙皮效果等優勢,進一步助力開發者技術創新。 HMS ...
  • 1、HTML基本結構 HTML網頁基本結構 HTML標簽都以“< >”開始、“</ >”結束 網頁中所有的內容都放在之間 網頁基本信息 <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>腹白的博客</title ...
  • 目標: 會使用HTML5的基本結構創建網頁 會使用文本相關標簽排版文本信息 會使用圖像相關標簽實現圖文並茂的頁面 會使用標簽創建超鏈接、錨鏈接及功能性鏈接 1、什麼是HTML HTML:Hyper Text Markup Language(超文本標記語言) 超文本包括:文字、圖片、音頻、視頻、動畫等 ...
一周排行
    -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.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...