




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
2021-2022年四川省廣安市全國計算機等級考試C語言程序設計模擬考試(含答案)學校:________班級:________姓名:________考號:________
一、單選題(20題)1.在如下結構定義中,不正確的是()。A.
B.
C.
D.
2.有以下程序:main(){char*p[10]={"abc","aabdfg","dcdbe","abbcf',"cd"};printf("%d\n",strlen(p[4]));}執行后的輸出結果是______。
A.2B.3C.4D.5
3.以下不能作為合法常量的是()。
A.'cd'B.1.234e04C.”\a”D.'\011'
4.樹是結點的集合,它的根結點數目是()。
A.有且只有1B.1或多于1C.0或1D.至少2
5.
6.有以下程序:
程序執行后的輸出結果是()。
A.357B.753C.369D.751
7.數據流圖(DFD)的作用是()。
A.描述軟件系統的控制流B.支持軟件系統的功能建模C.支持軟件系統的面向對象分析D.描述軟件系統的數據結構
8.鏈棧與順序棧相比,比較明顯的優點是()。
A.插入操作更加方便B.刪除操作更加方便C.不會出現下溢的情況D.不會出現上溢的情況
9.有以下程序:#include<stdio.h>point(char*p){p+=3;}main()charb[4]={'a','b','c','d'},*p=b;point(p);printf("%c\n",*p);
A.aB.bC.cD.d
10.下列程序的輸出結果是()
main()
{inta,b,d=25;
a=d/10%9;
b=a&&(-1);
printf("%d,%d\n",a,b);}
A.6,1B.2,1C.6,0D.2,0
11.
12.若有函數內部說明:inta[3][4];則數組a中各元素
A.可在程序的運行階段得到初值0
B.可在程序的編譯階段得到初值0
C.不能得到確定的初值
D.可在程序的編譯或運行階段得到初值0
13.有以下程序
#include<stdio.h>
#include<stdlib.h>
main()
{int*a,*b,*c;
a=b=c=(int*)malloc(sizeof(int));
*a=1;*b=2,*c=3;
a=b
printf(”%d,%d,%d\n”,*a,*b,*c);
}
程序運行后的輸出結果是()。A.3,3,3B.2,2,3C.1,2,3D.1,1,3
14.下列程序的輸出結果是()。char*point(char*pt):main{charb[4]={a,c,s,f),*pt=b;pt=point(pt);printf("%c\n",*pt);}point(char*p){p+=3;returnp;}A.sB.cC.fD.a
15.下列敘述中錯誤的是()。
A.C語言程序必須由一個或一個以上的函數組成
B.函數調用可以作為一個獨立的語句存在
C.若函數有返回值,必須通過return語句返回
D.函數形參的值也可以傳回給對應的實參
16.一棵二叉樹共有25個結點,其中5個是葉子結點,則度為l的結點數為()。
A.16B.10C.6D.4
17.有下列程序:程序執行后的輸出結果是()。A.2,14,3,18,4,18
B.1,14,2,18,3,18
C.2,14,3,18,4,22
D.1,14,2,18,3,18,4,18
18.
19.下列敘述錯誤的是()。
A.函數名是屬于用戶標識符,需符合C語言對標識符的規定
B.形參只能是變量
C.為保證程序的正常運行,函數中定義的變量不能與其他函數中的變量同名
D.函數中定義的變量可以與其他函數中的變量同名
20.已知函數的調用形式為fread(buf,size,count,fp),參數buf的含義是
A.一個整型變量,代表要讀入的數據項總數
B.一個文件指針,指向要讀的文件
C.一個指針;指向要讀入數據的存放地址
D.一個存儲區,存放要讀的數據項
二、2.填空題(20題)21.以下程序運行后,若輸入:3,abcde<回車>,則輸出結果是【】。
#include<stdio.h>
#include<string.h>
move(char*str,intn)
{chartemp;inti;
temp=str[n-1];
for(i=n-1;i>0;i--)str[i]=str[i-1];
str[0]=temp;
}
main()
{chars[50];intn,i,z;
scanf("%d,%s",&n,s);
z=strlen(s);
for(i=1;i<=n;i++)move(s,z);
printf("%s\n",s);
}
22.以下程序的運行結果是______。
#include<stdio.h>
main()
{FILE*fp;inta[10]={1,2,3,0,0},i;
fp=fopen("d2.dat","wbt");
fwtite(a,sizeof(int),5,fp);
fwlite(a,sizeof(int),5,fp);
fclose(fp);
fp=fopen("d2.dat","rb");
fread(a,sizeof(int),10,fp);
fclose(fp);
for(i=0;i
23.下列程序的輸出結果是______。
#include<stdio.h>
sb(ints[].intb)
{staticintn=3;
b=s[n];
n--;
return(b);
}
main()
{ints[]={1,5,6,8);
inti,x=0;
for(i=0;i<4;i++)
{x=sb(s,x);
printf(:%d",x);
}
printf("\n");
}
24.下面程序的運行結果是()。#definePOW(r)r*rmain(){intx=2,y=3,t;t=POW(x+y);printf("%d\n",t);}
25.下列程序的運行結果是______。
main()
{ints=0,i=1;
while(s<=10)
{s=s+i*i;
i++;
}
printf("%d",-i);
}
26.以下程序調用函數swap_p將指針s和t所指單元(a和b)中的內容交換,請填空。
main()
{inta=10,b=20,*s,*t;
s=&a;t=&b;
swap_p(【】);
printf("%d%d,a,b");}
swap_p(int**ss,int**tt)
{intterm;
term=**ss;
**ss=**tt;
**tt=term;}
27.以下程序運行后的輸出結果是______。
fun(inta)
{intb=0;staticintc=3;
b++;c++;
return(a+b+c);
}
main()
{inti,a=5;
for(i=0;i<3;i++)printf("%d%d",i,fun(a));
printf("\n");
}
28.在算法的4個特性中,算法必須能在執行有限個步驟之后終止指的是算法的______特性。
29.數據庫設計分為以下6個設計階段:需求分析階段、______、邏輯設計階段、物理設計階段、實施階段、運行和維護階段。
30.在C語言中,可以利用【】,將一個表達式的值轉換成指定的類型。
31.下面函數用來求兩個單精度數之和,并通過形參將結果傳回,請填空。
voidsub(floatx,floaty,【】z)
{【】=x+y;}
32.下面程序的輸出是【】。
main()
{enumem{em1=3,em2=l,em3};
char*aa[]={"AA","BB","CC","DD"};
printf("%s%s\n",aa[eml],aa[em2],aa[em3]);
}
33.設有下列宏定義:
#defineA2
#defineB(A+3)
則執行賦值語句"k=B*20;"(k為int型變量)后,k的值是______。
34.以下程序的輸出結果是【】。
main()
{
intarr[]={30,25,20,15,10,5},*p=arr;
p++;
printf("%d\n",*(p+3));
}
35.近年來形成了軟件開發的多種模式,大致有3種類型:基于瀑布模型的結構化生命周期方法、基于動態定義需求的【】方法和基于結構的面向對象的軟件開發方法。
36.以下程序的輸出結果是【】。
#include<stdio.h>
main()
{intn=12345,d;
while(n!=0){d=n%10;printf("%d",D);n/=10;}
}
37.Fibonacci數列中的頭兩個數是1和1,從第3個數開始,每個數等于前兩個數之和。下述程序計算此數列的前20個數,且每行輸出5個數,請填空。
#include<stdio.h>
main()
{intf,f1=1,f2=1;
inti;
printf("%6d%6d",f1,f2);
for(i=3;i<=20;i++)
{f=【】;
printf("%6d",f);
if(【】)
printf("\n");
f1=f2;
【】;
}
}
38.C語言程序的注釋可以出現在程序中的任何地方,一個注釋以【】分別作為開始和結束。
39.有以下程序:
#include<stclio.h>
main()
{charc;
while((c=getchar())!='?')putchar(--c);
}
程序運行時,如果從鍵盤輸入:Y?N?<回車>,則輸出結果為【】。
40.面向對象的程序設計方法中涉及的對象是系統中用來描述客觀事物的一個______。
三、1.選擇題(20題)41.微機顯示器一般有兩組引線,它們是()
A.電源線與信號線B.電源線與控制線C.電源線與地線D.控制線與地線
42.現代計算機之所以能自動地連續進行數據處理,主要是因為()
A.采用了開關電路B.采用了半導體器件C.具有存儲程序的功能D.采用了二進制
43.設intb=2;,則表達式(b<<2)/(b>>1)的值是______。
A.0B.2C.4D.8
44.以下程序的輸出結果是()enumweekday{sun=7,mon=1,tue,wed,thu,fri,sat};main(){enumweekdayworkday,week_end;inti,a[8];workday=tue;weekend=sun;pritnf("\ntuesday=%dsunday=%d",wotkday,week_end);workday=sun+tue;week_end=(enumweekday)3;printf("tuesday=%dsunday=%d",workdayweek_end);a[sun]=sun;a[mon]=mona[tue]=tue;a[wed]=wed;a[thu]=thu;a[fri]=fr;a[sat]=sat;for(i=1;i<7;i++)printf("%d",a[i]);}
A.tuesday=2sunday=7;tuesday=2sunday=7;1234567
B.tuesday=2sunday=7;tuesday=9sunday=3;1234567
C.tuesday=0sunday=7;tuesday=2sunday=3;1234567
D.tuesday=1sunday=2;tuesday=3sunday=4;1234567
45.以下程序的輸出結果是
main()
{inta,i;a=0;
for(i=1;i<5;i++)
{switch(i)
{case0:
case3:a+=2;
case1:
case2:a+=3;
default:a+=5;}
}printf("%d\n",a);}
A.31B.13C.10D.20
46.設有如下說明typedefstructST{longa;intb;charc[2];}NEW;則下面敘述中正確的是______。A.以上的說明形式非法B.ST是一個結構體類型C.NEW是一個結構體類型D.NEW是一個結構體變量
47.以下程序的結果是()
main()
{unsignedinta=3,b=10;
printf("%d\n",a<<2|b>>1);
}
A.1B.5C.12D.13
48.下列程序的運行結果是()。#include<stdio.h>#include<string.h>main(){char*s1="abDuj";char*s2="ABdUG";intt;t=strcmp(s1,s2);printf("%d",t);}
A.正數B.負數C.零D.不確定的值
49.檢查軟件產品是否符合需求定義的過程稱為()。
A.確認測試B.集成測試C.驗證測試D.驗收測試
50.有以下程序main(){inti:10,j=1;printf("%d,%d\n",i--,++j);}執行后輸出結果是
A.9,2B.10,2C.9,1,D.10,1
51.以下有4組用戶標識符,其中合法的一組是()。
A.FOr-subCase
B.4dDOSize
C.f2_G3IFabc
D.WORDvoiddefine
52.設x,y和z都是血型變量,且x=3,y=4,z=5,則下面表達式中,值為0的表達式是
A.x&&y
B.x<=y
C.x‖++y&&y-z
D.!(x<y&&!z‖1)
53.若變量已正確說明為float型,要通過語句scanf("%f%f%f",&a,&b,&c);給a賦予10,0,b賦予22.0,c賦予33.0,下列不正確的輸入形式是
A.10<回車>22<回車>33<回車>
B.10.0,22.0,33.0<回車>
C.10.0<回車>22.033.0<回車>
D.1022<回車>33<回車>
54.有以下程序
#include<stdio.h>
main()
{inta[]={1,2,3,4},y,*p=&a[3];
--p;y=*p;printf("y=%d\n",y);
}
程序的運行結果是
A.y=0B.y=1C.y=2D.y=3
55.以下程序的輸出結果是______。main(){chara[10]={'1','2','3','4','5','6','7','8','9'},*p;inti;i=8;p=a+i;printf("%s\n",p-2);}
A.6B.789C.'6'D.6789
56.函數的值通過return語句返回,下面關于return語句的形式描述錯誤的是
A.return表達式;
B.return(表達式);
C.一個return語句可以返回多個函數值
D.一個return語句只能返回一個函數值
57.在數據流圖(DFD)中,帶有名字的箭頭表示______。
A.控制程序的執行順序B.模塊之間的調用關系C.數據的流向D.程序的組成成分
58.下列程序的輸出結果是#include"stdio.h"main(){inti,a=0,b=0;for(i=1;i<10;i++){if(i%2==0){a++;continue;}b++;}printf("a=%d,b=%d",a,b);}
A.a=4,b=4B.a=4,b=5C.a=5,b=4D.a=5,b=5
59.數據庫DB、數據庫系統DBS、數據庫管理系統DBMS之間的關系是()。
A.DB包含DBS和DBMSB.DBMS包含DB和DBSC.DBS包含DB和DBMSD.沒有任何關系
60.有以下程序main(){intaa[4][4]={{1,2,3,4},{5,6,7,8},{3,9,10,2},{4,2,9,6}};inti,s=0;for(i=0;i<4;i++)s+=aa[i][1];printf("%d\n",s);}程序運行后的輸出結果是()
A.11B.19C.13D.20
四、選擇題(20題)61.
62.
63.設有定義:
inta=1,b=2,C=3;
以下語句中執行效果與其他三個不同的是()。
A.if(a>B.C=a,a=b,b=C;
B.if(a>B.{C=a,a=b,b=C;}
C.if(a>B.C=a;a=b;b=c;
D.if(a>B.{C=a;a=b;b=c;}
64.冒泡排序的時間復雜度為
A.O(n)B.O(n2)C.O(log2n)D.O(nlog2n)
65.下述程序的輸出結果是()。#include<stdio.h>voidmain{intb[6]={2,4,6,8,10,12);int*p=b,**q=&p;printf("%d,",*(p++));printf("%d,",**q);}A.4,4B.2,2C.4,5D.2,4
66.若有定義和語句:
int*(*pp),*P,a=20,b=10;
pp=&p;p=&a;p=&b;printf("%d,%d\n",*P,**PP);
則輸出結果是()。A.A.20,10B.20,20C.10,20D.10,10
67.有以下程序:
程序執行后的輸出結果是()。
A.PrphsbnB.ProhsbnC.ProgsbnD.Program
68.以下選項中能表示合法常量的是()。
A.1,200B.1.5E2.0C.”\”D.”\007”
69.在“文件包含,預處理語句的使用形式中,當#include后面的文件名用(雙引號)括時,尋找被包含文件的方式是()。
A.直接按系統設定的標準方式搜索目錄
B.先在源程序所在的目錄搜索,如沒找到,再按系統設定的標準方式搜索
C.僅僅搜索源程序所在目錄
D.僅僅搜索當前目錄
70.數據庫設計中反映用戶對數據要求的模式是()。
A.內模式B.概念模式C.外模式D.設計模式
71.設文件指針fp已定義,執行語句fp=fopen(”61e”,”W”);后,以下針對文本文件file操作敘述的選項中正確的是()。
A.只能寫不能讀B.寫操作結束后可以從頭開始讀C.可以在原有內容后追加寫D.可以隨意讀和寫
72.
73.下列關于棧的描述錯誤的是()。
A.棧按“先進后出”組織數據B.棧是特殊的線性表,只能在一端插入或刪除數據C.棧具有記憶功能D.棧只能順序存儲
74.有下列程序:intfun(intx[],intn){staticintsum=0,i;for(i=0;i<n;i++)sum+=x[i]:returnsum;}main(){inta[3]={1,2,3,4,5),b[3]={6,7,8,9),s=0;s=fun(a,5)+fun(b,4);printf(“%d\n”,s);}程序執行后的輸出結果是()。A.45B.50C.60D.55
75.
76.表達式“~0x11”的值是()。
A.0xFFEEB.0x71C.0x0071D.0xFFF1
77.
78.若執行以下程序時從鍵盤上輸入9,則輸出結果是()。main(){intn;scanf(”%d”,&n);if(n++<10)printf(”/%d\n”,n);elseprintf(”%d\n”,n--);}A.11B.10C.9D.8
79.有以下函數定義:
voidfun(intn,doublex){……}
若以下選項中的變量都已正確定義并賦值,則對函數fun正確調用的語句是
A.fun(inty,doublem);B.k=fun(10,12.5);
C.fun(x,n);D.voidfun(n,x);
80.當用“#defineF37.5f”定義后,下列敘述正確的是()。
A.F是float型數B.F是Char型數C.F無類型D.F是字符串
五、程序改錯題(1題)81.下列給定程序中,函數proc()的功能是:將字符串str中的所有字符復制到字符串b中,要求在每復制3個字符之后插入1個空格。例如,在調用proc()函數之前給字符
串str輸入abcdefghijk,調用函數之后,字符串b中的內容則為abcdefghijk。
請修改程序中的錯誤,使它能得出正確的結果。
注意:不要改動main()函數,不得增行或刪行,也不得更改程序的結構。
試題程序:
六、程序設計題(1題)82.使用VC++2010打開考生文件夾下析prog1中的解決方案。此解決方案的項目中包含一個源程序文件prog1.c。在此程序中,請編寫函數fun(),它的功能是計算下列級數和,和值由函數值返回。例如,當n=10,x=0.3時,函數值為1.349859。注意:部分源程序在文件prog1.c中。請勿改動主函數main()和其他函數中的任何內容,僅在函數fun()的花括號中填入你編寫的若干語句。試題程序:
參考答案
1.B
2.A解析:本題中p[4]='cd',所以strlen(p[4])=2。
3.A字符常量是使用單引號標注的單個字符,選項A錯誤;選項B屬于浮點數常量,正確;選項C屬于轉義字符常量,正確;選項D屬于轉義字符,代表八進制數011的ASCII值的字符,正確。本題答案為A選項。
4.A樹形結構是一類重要的非線性數據結構。樹是n(n≥0)個結點的集合,對應任意一棵非空樹,它具有以下幾點重要的性質。
①有且僅有一個特定的稱為根的結點。
②當n>1時,其余結點可分為m(m>0)個互不相交的有限集T1,T2,…,TM,其中每一個集合本身又是一棵樹,稱為子樹。
因此,本題的正確答案有且只有一個。
5.A
6.A本題考查的是for循環與二維數組的定義和引用。當定義二維數組的初始化列表只使用一重花括號時,其中的每個值依次代表從第l行的第1個元素起,直到第l行滿,接著代表第2行、第3行……的每一個元素。程序中的循環將循環3次,循環變量i的值分別是0、1、2,所以3次循環中輸出的數分別是:t[2一O][D]、t[2-1][1]、t[2~2]121,即t[2][0]、t[1][l]、t[0][2],所以最后輸出的結果為357。故應該選擇A)。
7.B數據流圖是系統邏輯模型的圖形表示,從數據傳遞和加工的角度,來刻畫數據流從輸入到輸出的移動變化過程,它直接支持系統的功能建模。本題答案為B選項。
8.D
9.A解析:C函數的參數傳遞方式采用按值傳遞,不能通過調用函數改變形參指針本身的值,只能改變指針所指變量的值。調用point函數時,將實參指針p的值(b數組的首地址)傳給了形參指針P,P+=3運算使形參指針指向字符d,但并不能改變main函數中p的值,所以本題正確答案應該是選項A)。
10.B解析:算術運行符“/”、“%”的優先級處于同一級,并且兩者的結合性都是從左到右。所以算術表達式運算過程為:a=25/10%9=2%9=2:當邏輯運算符“&&”兩邊的值都是非零時,邏輯表達式的值才為真(即為1)。所以b=2&&(-1)=1。
11.D
12.C本題主要考查數組的定義及初始化。在對數組進行定義和初始化時,需要注意以下事項。
(1)數組的內存空間在編譯時確定,定義數組時的n值只能使用常量,不能使用變量。
(2)定義數組時可以不標明數組元素的個數,而是通過賦初值的方式確定,編譯系統將自動計算花括號內的數據數量作為數組的元素個數。
(3)數組初始化時,當初值的個數小于整型常量n時,編譯系統會自動補0。一旦給定初值數超過n,編譯系統將報錯。
(4)初始化數組的元素類型,必須與定義數組時的類型一致。
(5)數組名記錄了數組在內存中的首地址,其值不能更改。
(6)除字符數組外,不能直接用數組名對數組進行整體輸入或輸出。
本題中定義了一個3行4列的數組,但沒有對其進行賦初值操作,可能我們會想在系統編譯時會自動補0,這只是在初值個數小于數組定義大小的情況下的操作,如果沒有進行賦初值操作,數組中的元素值是不能被確定的。因此,本題答案選C。
13.A解析:本題中,首先創建開辟一個動態內存,然后將地址分別存入指針a、b、c中,即a、b、c都指向相同的變量。分別給a、b、C所指的變量賦值,最終a、b、c所指的變量中的值為3,最后打印a、b、c所指的變量的值,即3,3,3。所以選A。
14.C本題考查函數的調用及參數傳遞,當執行函數point時,剛開始指針P指向“a”,經過+3,指針p指向“f”,所以最后的輸出結果是f。
15.D形參是定義函數時由用戶定義的。實參是函數調用時,主調函數為被調函數提供的原始數據。在C語言中,實參向形參傳送數據的方式是“值傳遞'是單向傳遞。故本題答案為D選項。
16.A根據二叉樹的性質,n=n0+n1+n2(n表示總結點數,n0表示葉子結點數,nl表示度數為1的結點數,n2表示度數為2的結點數),而葉子結點數總是比度數為2的結點數多1,所以n2=n1-1=5-1=4,而n=25,所以nl=n-n0-n2=25-5-4=16。
17.A程序定義整型變量a和i,其中a的初值為7。for循環中,循環變量i的取值為1,2,3。循環體中判斷a的取值,當a>14時,執行break跳出循環;當a取值為奇數時,a%2==1,a自增3,執行continue繼續執行循環體;當a取值為偶數時,a%2==0,a自增4,輸出i和a的值。i取值為1時,a取值為7,自增3后a的值為10,執行下一個循環。i取值為2時,a取值為10,自增4后a的值為14,輸出2,14。i取值為3時,a取值為14,自增4后a的值為18,輸出3,18。i取值為4時,a取值為18,循環終止,輸出4,18。綜上,程序輸出:2,14,3,18,4,18。本題答案為A選項。
18.C
19.C解析:本題考查函數調用時參數的作用域。在函數調用時,函數體內定義的變量的作用域連函數體內,因而在不同函數體內定義的變量可以相同,不影響各個變量的使用。
20.C解析:這是一道考查fread函數的題。buf是一個指針,fread是讀入數據的存放地址;fwrite是輸出數據的地址(以上指的是起始地址)。
21.cdeabcdeab解析:程序中的move函數的作用是保存輸入數組中的最后一個元素,然后從最后一個數組元素開始,依次向后移動一個位置,再把保存的最后一個元素置于首位,循環次數由n控制。輸入3,abcde<回車>后主函數開始執行,其中n=3,s[50]={'abcde'},z=5。第一次循環,i=1時,調用move(s,5)函數,temp=str[4]語句把數組中最后一個元素\'e\'保存在temp中,然后i從4開始循環,將str[3](字符\'d\')賦給str[4],str[2](字符\'c\')賦給str[3],……,循環結束時str所指字符串為'aabcd',再將保存在temp中的\'e\'置于首位,字符串變為'eabcd';i=2時,調用move函數,字符串為'deabc';i=3時,調用move函數,字符串為'cdeab'。最后輸出結果為'cdeab'。
22.解析:本題考查文件讀寫函數fread和fwrite的用法。fwrite函數將數組a的前5個元素輸出到文件fp中兩次,共10個字節,再調用fread函數從文件fp中讀取這10個字節的數據到數組a中,此時數組a的內容就變為{1,2,3,0,0,1,2,3,0,)},最后的輸出結果為“1,2,3,0,0,1,2,3,0,0,”。
23.86518651解析:主程序中,第一次循環時,i=0,調用sb(s,x)子函數,此時n=3,x=s[n]=s[3]=8,然后將n減1變為2;第二次循環時,i=1,調用sb(s,x)子函數,因為將n定義為了靜態變量,所以此時n=2,返回x=s[n]=s[2]=6;第三次循環時,i=2,調用sb(s,x)子函數,此時n=1,返回x=s[n]=s[1]=5;第四次循環時,i=3,調用sb(s,x)子函數,此時n=0,返回x=s[n]=s[0]=1。此程序實際上是將數組s逆序輸出。
24.11
25.33解析:分析程序運行過程,第1次循環:s=s+i*i=0+1*1=1,i=2;第2次循環:s=s+i*i=1+2*2=5,i=3;第3次循環:s=s+i*i=5+3*3=14,i=4;循環條件不成立輸出i,--i使i的值減1,軸出結果為3。
26.&s&t&s,&t解析:指針做函數參數時,形參和實參指向同一個數據,所以函數中對形參所指向的數據的改變也能影響到實參。本題中函數swap_p的形參為指向指針的指針,即雙重指針,原理跟普通的指針是一樣的。注意:通過指針來引用一個存儲單元。
27.010111212010111212解析:本題考查的是靜態局部變量的運用。靜態局部變量的作用域與普通局部變量一樣,但它的生存期將延長到程序運行結束。本題的主函數中使用一個for循環輸出循環變量i和fun(a)的值,由于a的值一直沒被修改過,所以三次調用的都是fun(5)。第1次調用,b=0,c=3,所以返回值為5+1+4=10;第2次調用,因為c是靜態局部變量,它仍然保存著上次調用結束時的值4,而b重新被創建和初始化為0,所以返回值為5+1+5=11;同理,第3次調用返回的是12。所以,程序最終輸出為:010111212。
28.有窮性有窮性解析:算法的4個基本特性包括:可靠性、確定性、有窮性和擁有足夠的情報,其中,算法的有窮性指的是算法必須在有限的時間內完成,即算法必須在執行有限個步驟之后終止。
29.概念設計階段(數據庫概念設計階段)概念設計階段(數據庫概念設計階段)
30.強制類型轉換強制類型轉換
31.float**zfloat*\r\n*z解析:C程序中可以通過傳送地址的方式在被調用函數中直接改變被調用函數中變量的值,從而達到函數之間數據的傳遞。
32.DDBBCCDDBBCC解析:C語言對枚舉的定義規定:在枚舉中聲明的各個枚舉元素,如果沒有明確指出某個枚舉元素的值,它的上一個元素存在并有明確值的情況下,這個枚舉元素的值為其上一個元素的值+1。在本題中,沒有明確說明枚舉元素em3的值,則em3=em2+1=1+1=2,進而可知,在printf()打印函數中,要打印的數組元素是aa[3],aa[1]、aa[2],因此最后的打印結果應當為“DDBBCC”。
33.100100解析:本題考查帶參數的宏定義及相關運算。運算過程為:k=B*20=(A+3)*20=(2+3)*20=100。
34.1010解析:整型指針最初被賦的值是數組arr的頭指針,即指向數組的第一個元素30,p++后,指針指向數組的下一個元素,即*p=arr[1]=25,在執行*(p+3)時,則相當于a[1+3],即10。因此,輸出應為100。
35.原型化原型化
36.5432154321解析:在while循環中,d=n%10;語句每次求得的結果是n個位上的數值,例如12345÷10所得的余數就是個位上的5。接下來輸出得到的個位數字d,然后執行n/=10;語句,該語句等價于n=n/10;。在C語言中,如果/運算的兩個運算分量都是整數,那所得的結果也截尾取整,所以12345/10=1234,即n-=n/10;語句的作用是讓n截去個位上的數字。由此可知,隨著while循環的繼續,n依次為12345、1234、123、12、1,而每次輸出n的個位數字將為5、4、3、2、1。故本題應填543210。
37.f1+f2i%5==0f2=ff1+f2\r\ni%5==0\r\nf2=f解析:f用來保存前兩個數之和,并作為第三個數,計算后把第二個數(f2)賦給f1,第三個數(f)賦給f2,再執行for循環。
38./**//**/解析:C語言程序的注釋可以出現在程序基本單詞之間的任何地方,C語言程序的注釋以“/*”作為開始標記,并以“*/”作為結束標記。
39.XX解析:主函數中首先定義了一個字符型變量c,接著執行下面while語句,在while循環中,首先從鍵盤上讀入一個字符Y并給賦給字符變量c,賦值表達式的值不為'?',執行輸出語句,輸出字符X。接著判斷while中的循環條件,讀入一個字符'?'并賦值給c,賦值表達式的值為'?'循環條件不再滿足,退出循環。
40.實體實體
41.A
42.C
43.D
44.B
45.A解析:本題考查用于多分支選擇的switch語句,其一般形式為:
switch(表達式)
{
case常量表達式1:語句1;
case常量表達式2:語句2;
…
case常量表達式n:語句n;
default:語句n+1;
}
其語義是:計算表達式的值,并逐個與其后的常量表達式值進行比較,當表達式的值與某個常量表達式的值相等時,即執行其后的語句,然后不再進行判斷,繼續執行后面所有case后的語句;如表達式的值與所有case后的常量表達式均不相等時,則執行default后的語句。
46.C解析:將題目中的定義語句去掉前面的typedef和后面的NEW(分號保留),就是一條完整的結構體定義語句,其中struct是說明符,ST是結構體名,大括號里面的是結構體成員的定義。此時要聲明該結構體變量時需要使用struct加結構體名一起來聲明,struetST一起構成一個結構體類型,就好像字符類型char.若只去掉前面的typedef,就是一條結構體定義同時聲明一個結構體變量NEW的語句,因為NEW的前面部分是structST的完整寫法??梢钥醋魇莝tructST.C語言允許用typedef說明一種新類型名,其語法格式為:
typedef類型名標識符;
以后就可以用該標識符來代替被說明的類型名了。因此,當前面存在typedef時,該語句就變成了給stmctST的完整寫法定義一個新的名稱NEW。所以,此時的NEW是一個結構體類型,它相當于structST,即可以和char一樣單獨用來聲明該結構體變量,而ST只是一個結構體名,不能單獨用來聲明變量。所以,4個選項中C符合題意。
47.D
48.A解析:本題考查字符串比較函數和兩個字符串比較的原則兩個知識點,①原則是依次比較兩個字符串同一位置的對字符,若它們的ASCII碼值相同,則繼續比較下一對字符,若它們的ASCII碼值不同,則ASCII碼值較大的字符所在的字符串較大;若所有字符相同,則兩個字符串相等;若一個字符串全部i個字符與另一個字符串的前i個字符相同,則字符串較長的較大。②strcmp(s1,s2)的返回值,當str1<str2時,返回值<0;當str1=str2時,返回值為0;當str1>str2,返回值>0。
49.A本題主要考查軟件測試的基本知識。軟件測試的步驟可分為單元測試(模塊測試)、集成測試、確認測試和系統測試。
(1)單元測試是針對每個模塊進行的測試,它可從程序的內部結構出發設計測試用例,多個模塊可以平行、對立地測試。單元測試主要用于發現詳細設計和編程時犯下的錯誤。單元測試多采用白盒測試,輔之以黑盒測試。
(2)集成測試是在單元測試的基礎上,根據模塊結構圖將各個模塊連接起來,必須精心計劃,應提交集成測試計劃、集成測試規格說明和集成測試分析報告。主要目標是發現與接口有關的問題。集成測試可以發現概要設計時犯的錯誤。
(3)確認測試用于驗證軟件的功能和性能及其他特性是否與用戶的要求一致。確認測試主要用于發現需求分析時犯下的錯誤,一般使用黑盒法測試,以表明軟件符合需求說明書的要求,應該仔細設計測試用例和測試過程。確認測試必須有用戶參加,或以用戶為主,用戶應參與設計測試用例,通常情況下,主要使用生產中的實際數據進行測試,測試數據通過用戶接口輸入。
(4)系統測試是將已經通過確認測試的軟件,作為整個計算機系統的元素與計算機硬件、外設和網絡等其他因素結合在一起,進行一系列的組裝測試和確認測試。系統測試的目的是通過與系統的需求定義做比較,發現軟件與系統的定義不符合的地方。系統測試可以發現問題定義時犯下的錯誤。
50.B解析:++、--運算符在變量之前是先使變量的值加1或減1,然后再使用變量的值;如果在變量之后則先使用變量之前的值,再把變量的值加1或減1。顯然,程序中表達式“i--”的值為10,“++j”的值為2,所以最后輸出的值為10和2。
51.C解析:選項A中for和case為C語言中的保留字,不能作為用戶標志符,故A錯誤。選項B中的4d其開頭的第一個為數字,而在C語言中規定,第一個字符必須為字母或者下劃線,故B錯誤;選項D中void為C語言中的保留字,不能作為用戶標志符,故D錯誤。所以,4個選項中選項C符合題意。
52.D解析:該題考查邏輯與“&&”和邏輯或“‖”以及邏輯非“!”符號的用法。選項A)即3&&4為真;選項B)即3<=4為真;選項C)是一個邏輯或與邏輯與的混合運算,只要執行了邏輯或左半部分,程序將直接停止執行邏輯或右半部分程序,因為x的值為真;此時選項C)變為1&&-1為真。選項D)不用計算,括號內邏輯或右邊的值為1,因而括號內的值為1,再進行邏輯非運算得0。
53.B解析:在C語言中,當一次輸入多個數據的時候,數據之間要用間隔符,合法的間隔符可以是空格、制表符和回車符。逗號不是合法的間隔符。
54.D解析:在程序中指針變量p初始指向a[3],執行p減1后,p指向a[2],語句y=*p的作用是把a[2]的值賦給變量y,所以輸出為y=3。
55.B解析:p-2=a+8-2=a+5,則p指向a[6],則p指向7,所以輸出如B所示結果。
56.C解析:return語句中的表達式的值就是所求的函數值,此表達式值的類型必須與函數首部所說明的類型一致。如果類型不一致,則以函數值的類型為準,由系統自動進行轉換。一個return語句只能返回一個值。
57.C解析:數據流相當于一條管道,并有一級數據(信息)流經它。在數據流圖中,用標有名字的箭頭表示數據流。數據流可以從加工流向加工,也可以從加工流向文件或從文件流向加工,并且可以從外部實體流向系統或從系統流向外部實體。
58.B解析:continue語句的作用是跳過本次循環體中余下尚未執行的語句,接著再一次進行循環條件的判定。當能被2整除時,a就會增1,之后執行continue語句,直接執行到for循環體的結尾,進行i++,判斷循環條件。
59.C(10)C)解析:DB即數據庫(Database),是統一管理的相關數據的集合;DBMS即數據庫管理系統(DatabaseManagementSystem),是位于用戶與操作系統之間的一層數據管理軟件,為用戶或應用程序提供訪問DB的方法;DBS即數據庫系統(DatabaseSystem)由如下5部分組成,數據庫(數據)、數據庫管理系統(軟件)、數據庫管理員(人員)、系統平臺之一——硬件平臺(硬件)、系統平臺之二——軟件平臺(軟件)。
60.B解析:C語言規定,數組元素的下標是從零開始的.本題首先定義了一個二維數組aa并按行賦初值,定義了一個變量s用于求和。for循環執行4次分別把數組元素aa[0][1]、aa[1)[1)、oa[2][1]和aa[2][1]的值(2,6,9,2)加到變量s中,s的值為19,所以最后輸出的s的值為19.所以4個選項中B正確。
61.C
62.A
63.C由于a小于b,所以所有選項中的條件都為假,c選項中實際執行了a=b;b=c;兩個操作。而A、B、D選項由于條件不成立,所以什么也沒有做,所以選擇c選項。
64.B冒泡排序的基本概念是:以升序為例,依次比較相鄰的兩個數,將小數放在前面,大數放在后面。第一趟排序過程是這樣的,首先比較第1個和第2個數,將小數放前,大數放后。然后比較第2個數和第3個數,將小數放前,大數放后,如此繼續,直至比較最后兩個數,將小數放前,大數放后。這樣一次排序后,最后一個數為所有數中的最大數。第二趟排序重復以上過程,仍從第一對數開始比較(因為可能由于第2個數和第3個數的交換,使得第1個數不再小于第2個數),將小數放前,大數放后,一直比較到最大數前的一對相鄰數,將小數放前,大數放后,第二趟結束,在倒數第二個數中得到一個新的最大數。如此下去,直至最終完成排序。
冒泡排序的時間復雜度是指執行冒泡排序算法所需要的時間。冒泡排序算法最好的時間復雜度為所要排序的數列為正序,即在執行排列算法之前就已經達到目標的順序。這樣只需要執行一次排序算法,算法所需要進行數據比較的次數為n-1次。冒泡排序算法最差的時間復雜度為當前所要進行排列的數列順序與目標數列的順序相反。算法所需要進行數據比較的次數為n(n-1)/2=O(n2)。算法的平均時間復雜度為O(n2)。
65.D首先定義了一個指向一維數組b的指針P,一個指向指針P的指針變量q;輸出*(p++)是先輸出*p,即b[O]的值,再將指針P指向數組的下一個元素b[1];輸出**q是輸出指針P所指單元的內容。
66.D本題考查指針變量的賦值。**PP是定義一個指針變量,語句pp=&p是將pp指向指針P,*P和**PP都是指針P所指的內存空間的內容,即b的值。
67.B(*q)++是q所指的字符加l,q++就是指針移到下一個字符。因此B選項正確。
68.DA選項中整型常量應表示為1200,不能包含“?!?。B選項中E后面的指數必須為整數。C選項中轉義字符以“、”開始,若要表示字符“、”,應寫為“、、”。
69.B#include”文件名”,預處理程序首先在引用被包含文件的源文件所在的目錄下搜索指定的文件,如沒找到,再按系統指定的標準目錄搜索。
70.C數據庫系統的三級模式是概念模式、外模式和內模式。概念模式是數據庫系統中全局數據邏輯結構的描述,是全體用戶公共數據視圖。外模式也稱子模式或用戶模式,它是用戶的數據視圖,給出了每個用戶的局部數據描述,所以選擇C。內模式又稱物理模式,它給出了數據庫物理存儲結構與物理存取方法。
71.A考查文件操作函數fopen的基礎知識,以”W”方式打開文件,只能寫不能讀。選項A正確。
72.B
73.B\n棧是限定在一端進行插入與刪除的線性表,允許插入和刪除元素的一端稱為棧頂,另一端為棧底。棧頂元素是最后被插入的元素,也是最先被刪除的元素,即棧是按照”先進后出”的原則組織數據的。棧具有記憶功能,帶鏈的棧的結點存儲順序與其邏輯順序可以不一致。
\n
74.C在函數intfun(intx[],intn)的定義中,變量sum為一個靜態局部變量。由于在整個程序運行期間,靜態局部變量在內存中的靜態存儲中占據著永久的存儲單元。函數intfun(intx[],intn)的功能是求出數組x[]各個元素的和,所以在主函數中,調用函數fun(a,5)后,變量sum=1+2+3+4+5=15,當再次調用fun(b,4)后,變量sum=15+6+7+8+9=45,所以s=15+45=60。
75.D
76.A本題主要考查按位求反運算:十六進制整型常量的形式是以數字Ox開頭的十六進制字符串;位求反運算的規則是:將二進制表示的運算對象按位取反,即將1變0,將0變1。
77.A
78.B當n為9時,此時if語句成立,執行n++后,n為10,因此輸出n的值為10,故選擇B選項。
79.C選項A中,fun(inty,doublem);中變量y和m前不需要類型說明;因為函數fun(10,12.5)沒有返回值,所以選項B錯誤;調用函數fun時,不需要在函數前面加上void,所以選項D錯誤。故本題的正確答案是選項C。
80.D解析:字符替換定義格式為:#define標識符(形參表)形參表達式。題中F是代表形參表達式的標識符(字符串)。
81.
82.1doublefun(doublex,intn)2{3inti;4doubles=1.0,sl=1.0;5for(i=1/i<=n;i++)6{si=si*i;/*各項中的階乘*/?s=s+pow(x,i)/si;/*按公式求出*/}Returns;10}程序定義了變量Sl和s,sl表示每項的分母(即各項的階乘),S存放累加和。循環語句控制累加的次數,在循環體中進行階乘和累加操作,將累加的結果存入S中。此處使用了求乘方函數pow(X,i),其含義是求X的i次方的值。2021-2022年四川省廣安市全國計算機等級考試C語言程序設計模擬考試(含答案)學校:________班級:________姓名:________考號:________
一、單選題(20題)1.在如下結構定義中,不正確的是()。A.
B.
C.
D.
2.有以下程序:main(){char*p[10]={"abc","aabdfg","dcdbe","abbcf',"cd"};printf("%d\n",strlen(p[4]));}執行后的輸出結果是______。
A.2B.3C.4D.5
3.以下不能作為合法常量的是()。
A.'cd'B.1.234e04C.”\a”D.'\011'
4.樹是結點的集合,它的根結點數目是()。
A.有且只有1B.1或多于1C.0或1D.至少2
5.
6.有以下程序:
程序執行后的輸出結果是()。
A.357B.753C.369D.751
7.數據流圖(DFD)的作用是()。
A.描述軟件系統的控制流B.支持軟件系統的功能建模C.支持軟件系統的面向對象分析D.描述軟件系統的數據結構
8.鏈棧與順序棧相比,比較明顯的優點是()。
A.插入操作更加方便B.刪除操作更加方便C.不會出現下溢的情況D.不會出現上溢的情況
9.有以下程序:#include<stdio.h>point(char*p){p+=3;}main()charb[4]={'a','b','c','d'},*p=b;point(p);printf("%c\n",*p);
A.aB.bC.cD.d
10.下列程序的輸出結果是()
main()
{inta,b,d=25;
a=d/10%9;
b=a&&(-1);
printf("%d,%d\n",a,b);}
A.6,1B.2,1C.6,0D.2,0
11.
12.若有函數內部說明:inta[3][4];則數組a中各元素
A.可在程序的運行階段得到初值0
B.可在程序的編譯階段得到初值0
C.不能得到確定的初值
D.可在程序的編譯或運行階段得到初值0
13.有以下程序
#include<stdio.h>
#include<stdlib.h>
main()
{int*a,*b,*c;
a=b=c=(int*)malloc(sizeof(int));
*a=1;*b=2,*c=3;
a=b
printf(”%d,%d,%d\n”,*a,*b,*c);
}
程序運行后的輸出結果是()。A.3,3,3B.2,2,3C.1,2,3D.1,1,3
14.下列程序的輸出結果是()。char*point(char*pt):main{charb[4]={a,c,s,f),*pt=b;pt=point(pt);printf("%c\n",*pt);}point(char*p){p+=3;returnp;}A.sB.cC.fD.a
15.下列敘述中錯誤的是()。
A.C語言程序必須由一個或一個以上的函數組成
B.函數調用可以作為一個獨立的語句存在
C.若函數有返回值,必須通過return語句返回
D.函數形參的值也可以傳回給對應的實參
16.一棵二叉樹共有25個結點,其中5個是葉子結點,則度為l的結點數為()。
A.16B.10C.6D.4
17.有下列程序:程序執行后的輸出結果是()。A.2,14,3,18,4,18
B.1,14,2,18,3,18
C.2,14,3,18,4,22
D.1,14,2,18,3,18,4,18
18.
19.下列敘述錯誤的是()。
A.函數名是屬于用戶標識符,需符合C語言對標識符的規定
B.形參只能是變量
C.為保證程序的正常運行,函數中定義的變量不能與其他函數中的變量同名
D.函數中定義的變量可以與其他函數中的變量同名
20.已知函數的調用形式為fread(buf,size,count,fp),參數buf的含義是
A.一個整型變量,代表要讀入的數據項總數
B.一個文件指針,指向要讀的文件
C.一個指針;指向要讀入數據的存放地址
D.一個存儲區,存放要讀的數據項
二、2.填空題(20題)21.以下程序運行后,若輸入:3,abcde<回車>,則輸出結果是【】。
#include<stdio.h>
#include<string.h>
move(char*str,intn)
{chartemp;inti;
temp=str[n-1];
for(i=n-1;i>0;i--)str[i]=str[i-1];
str[0]=temp;
}
main()
{chars[50];intn,i,z;
scanf("%d,%s",&n,s);
z=strlen(s);
for(i=1;i<=n;i++)move(s,z);
printf("%s\n",s);
}
22.以下程序的運行結果是______。
#include<stdio.h>
main()
{FILE*fp;inta[10]={1,2,3,0,0},i;
fp=fopen("d2.dat","wbt");
fwtite(a,sizeof(int),5,fp);
fwlite(a,sizeof(int),5,fp);
fclose(fp);
fp=fopen("d2.dat","rb");
fread(a,sizeof(int),10,fp);
fclose(fp);
for(i=0;i
23.下列程序的輸出結果是______。
#include<stdio.h>
sb(ints[].intb)
{staticintn=3;
b=s[n];
n--;
return(b);
}
main()
{ints[]={1,5,6,8);
inti,x=0;
for(i=0;i<4;i++)
{x=sb(s,x);
printf(:%d",x);
}
printf("\n");
}
24.下面程序的運行結果是()。#definePOW(r)r*rmain(){intx=2,y=3,t;t=POW(x+y);printf("%d\n",t);}
25.下列程序的運行結果是______。
main()
{ints=0,i=1;
while(s<=10)
{s=s+i*i;
i++;
}
printf("%d",-i);
}
26.以下程序調用函數swap_p將指針s和t所指單元(a和b)中的內容交換,請填空。
main()
{inta=10,b=20,*s,*t;
s=&a;t=&b;
swap_p(【】);
printf("%d%d,a,b");}
swap_p(int**ss,int**tt)
{intterm;
term=**ss;
**ss=**tt;
**tt=term;}
27.以下程序運行后的輸出結果是______。
fun(inta)
{intb=0;staticintc=3;
b++;c++;
return(a+b+c);
}
main()
{inti,a=5;
for(i=0;i<3;i++)printf("%d%d",i,fun(a));
printf("\n");
}
28.在算法的4個特性中,算法必須能在執行有限個步驟之后終止指的是算法的______特性。
29.數據庫設計分為以下6個設計階段:需求分析階段、______、邏輯設計階段、物理設計階段、實施階段、運行和維護階段。
30.在C語言中,可以利用【】,將一個表達式的值轉換成指定的類型。
31.下面函數用來求兩個單精度數之和,并通過形參將結果傳回,請填空。
voidsub(floatx,floaty,【】z)
{【】=x+y;}
32.下面程序的輸出是【】。
main()
{enumem{em1=3,em2=l,em3};
char*aa[]={"AA","BB","CC","DD"};
printf("%s%s\n",aa[eml],aa[em2],aa[em3]);
}
33.設有下列宏定義:
#defineA2
#defineB(A+3)
則執行賦值語句"k=B*20;"(k為int型變量)后,k的值是______。
34.以下程序的輸出結果是【】。
main()
{
intarr[]={30,25,20,15,10,5},*p=arr;
p++;
printf("%d\n",*(p+3));
}
35.近年來形成了軟件開發的多種模式,大致有3種類型:基于瀑布模型的結構化生命周期方法、基于動態定義需求的【】方法和基于結構的面向對象的軟件開發方法。
36.以下程序的輸出結果是【】。
#include<stdio.h>
main()
{intn=12345,d;
while(n!=0){d=n%10;printf("%d",D);n/=10;}
}
37.Fibonacci數列中的頭兩個數是1和1,從第3個數開始,每個數等于前兩個數之和。下述程序計算此數列的前20個數,且每行輸出5個數,請填空。
#include<stdio.h>
main()
{intf,f1=1,f2=1;
inti;
printf("%6d%6d",f1,f2);
for(i=3;i<=20;i++)
{f=【】;
printf("%6d",f);
if(【】)
printf("\n");
f1=f2;
【】;
}
}
38.C語言程序的注釋可以出現在程序中的任何地方,一個注釋以【】分別作為開始和結束。
39.有以下程序:
#include<stclio.h>
main()
{charc;
while((c=getchar())!='?')putchar(--c);
}
程序運行時,如果從鍵盤輸入:Y?N?<回車>,則輸出結果為【】。
40.面向對象的程序設計方法中涉及的對象是系統中用來描述客觀事物的一個______。
三、1.選擇題(20題)41.微機顯示器一般有兩組引線,它們是()
A.電源線與信號線B.電源線與控制線C.電源線與地線D.控制線與地線
42.現代計算機之所以能自動地連續進行數據處理,主要是因為()
A.采用了開關電路B.采用了半導體器件C.具有存儲程序的功能D.采用了二進制
43.設intb=2;,則表達式(b<<2)/(b>>1)的值是______。
A.0B.2C.4D.8
44.以下程序的輸出結果是()enumweekday{sun=7,mon=1,tue,wed,thu,fri,sat};main(){enumweekdayworkday,week_end;inti,a[8];workday=tue;weekend=sun;pritnf("\ntuesday=%dsunday=%d",wotkday,week_end);workday=sun+tue;week_end=(enumweekday)3;printf("tuesday=%dsunday=%d",workdayweek_end);a[sun]=sun;a[mon]=mona[tue]=tue;a[wed]=wed;a[thu]=thu;a[fri]=fr;a[sat]=sat;for(i=1;i<7;i++)printf("%d",a[i]);}
A.tuesday=2sunday=7;tuesday=2sunday=7;1234567
B.tuesday=2sunday=7;tuesday=9sunday=3;1234567
C.tuesday=0sunday=7;tuesday=2sunday=3;1234567
D.tuesday=1sunday=2;tuesday=3sunday=4;1234567
45.以下程序的輸出結果是
main()
{inta,i;a=0;
for(i=1;i<5;i++)
{switch(i)
{case0:
case3:a+=2;
case1:
case2:a+=3;
default:a+=5;}
}printf("%d\n",a);}
A.31B.13C.10D.20
46.設有如下說明typedefstructST{longa;intb;charc[2];}NEW;則下面敘述中正確的是______。A.以上的說明形式非法B.ST是一個結構體類型C.NEW是一個結構體類型D.NEW是一個結構體變量
47.以下程序的結果是()
main()
{unsignedinta=3,b=10;
printf("%d\n",a<<2|b>>1);
}
A.1B.5C.12D.13
48.下列程序的運行結果是()。#include<stdio.h>#include<string.h>main(){char*s1="abDuj";char*s2="ABdUG";intt;t=strcmp(s1,s2);printf("%d",t);}
A.正數B.負數C.零D.不確定的值
49.檢查軟件產品是否符合需求定義的過程稱為()。
A.確認測試B.集成測試C.驗證測試D.驗收測試
50.有以下程序main(){inti:10,j=1;printf("%d,%d\n",i--,++j);}執行后輸出結果是
A.9,2B.10,2C.9,1,D.10,1
51.以下有4組用戶標識符,其中合法的一組是()。
A.FOr-subCase
B.4dDOSize
C.f2_G3IFabc
D.WORDvoiddefine
52.設x,y和z都是血型變量,且x=3,y=4,z=5,則下面表達式中,值為0的表達式是
A.x&&y
B.x<=y
C.x‖++y&&y-z
D.!(x<y&&!z‖1)
53.若變量已正確說明為float型,要通過語句scanf("%f%f%f",&a,&b,&c);給a賦予10,0,b賦予22.0,c賦予33.0,下列不正確的輸入形式是
A.10<回車>22<回車>33<回車>
B.10.0,22.0,33.0<回車>
C.10.0<回車>22.033.0<回車>
D.1022<回車>33<回車>
54.有以下程序
#include<stdio.h>
main()
{inta[]={1,2,3,4},y,*p=&a[3];
--p;y=*p;printf("y=%d\n",y);
}
程序的運行結果是
A.y=0B.y=1C.y=2D.y=3
55.以下程序的輸出結果是______。main(){chara[10]={'1','2','3','4','5','6','7','8','9'},*p;inti;i=8;p=a+i;printf("%s\n",p-2);}
A.6B.789C.'6'D.6789
56.函數的值通過return語句返回,下面關于return語句的形式描述錯誤的是
A.return表達式;
B.return(表達式);
C.一個return語句可以返回多個函數值
D.一個return語句只能返回一個函數值
57.在數據流圖(DFD)中,帶有名字的箭頭表示______。
A.控制程序的執行順序B.模塊之間的調用關系C.數據的流向D.程序的組成成分
58.下列程序的輸出結果是#include"stdio.h"main(){inti,a=0,b=0;for(i=1;i<10;i++){if(i%2==0){a++;continue;}b++;}printf("a=%d,b=%d",a,b);}
A.a=4,b=4B.a=4,b=5C.a=5,b=4D.a=5,b=5
59.數據庫DB、數據庫系統DBS、數據庫管理系統DBMS之間的關系是()。
A.DB包含DBS和DBMSB.DBMS包含DB和DBSC.DBS包含DB和DBMSD.沒有任何關系
60.有以下程序main(){intaa[4][4]={{1,2,3,4},{5,6,7,8},{3,9,10,2},{4,2,9,6}};inti,s=0;for(i=0;i<4;i++)s+=aa[i][1];printf("%d\n",s);}程序運行后的輸出結果是()
A.11B.19C.13D.20
四、選擇題(20題)61.
62.
63.設有定義:
inta=1,b=2,C=3;
以下語句中執行效果與其他三個不同的是()。
A.if(a>B.C=a,a=b,b=C;
B.if(a>B.{C=a,a=b,b=C;}
C.if(a>B.C=a;a=b;b=c;
D.if(a>B.{C=a;a=b;b=c;}
64.冒泡排序的時間復雜度為
A.O(n)B.O(n2)C.O(log2n)D.O(nlog2n)
65.下述程序的輸出結果是()。#include<stdio.h>voidmain{intb[6]={2,4,6,8,10,12);int*p=b,**q=&p;printf("%d,",*(p++));printf("%d,",**q);}A.4,4B.2,2C.4,5D.2,4
66.若有定義和語句:
int*(*pp),*P,a=20,b=10;
pp=&p;p=&a;p=&b;printf("%d,%d\n",*P,**PP);
則輸出結果是()。A.A.20,10B.20,20C.10,20D.10,10
67.有以下程序:
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 山西省三晉聯盟山西名校2024-2025學年高一上學期11月期中聯合考試數學試題(解析版)
- 2025年一級造價師之工程造價案例分析(水利)??寄M試題(全優)
- 房地產項目的市場細分與定位
- 施工質量控制中的BIM技術應用
- 2019-2025年演出經紀人之演出經紀實務考前沖刺模擬試卷B卷含答案
- 環境經濟項目合同履行國際交流重點基礎知識點歸納
- 元旦祝福故事與歡笑
- 護理信息化應用
- 染發后的正確護理方法
- 基于大數據的綠色施工決策支持系統
- GB/T 4721-1992印制電路用覆銅箔層壓板通用規則
- GB/T 22415-2008起重機對試驗載荷的要求
- GB/T 11363-2008釬焊接頭強度試驗方法
- TSG D7003-2022 壓力管道定期檢驗規則-長輸管道
- IATF16949數據分析與績效評價程序
- 【山東】國際足球運動小鎮概念規劃方案
- 海氏(hay)職位分析法-介紹、實踐與評價合集課件
- 潔凈區空氣潔凈度級別空氣懸浮粒子的標準規定表
- 人教版五年級下冊期末語文試卷答題卡及答案
- 步進式加熱爐耐材砌筑施工方案
- GB-T12232-2005- 通用閥門 法蘭連接鐵制閘閥
評論
0/150
提交評論