




版權說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權,請進行舉報或認領
文檔簡介
2021年四川省雅安市全國計算機等級考試C語言程序設計測試卷(含答案)學校:________班級:________姓名:________考號:________
一、單選題(20題)1.當調(diào)用函數(shù)時,實參是一個數(shù)組名,則向函數(shù)傳送的是______。
A.數(shù)組的長度B.數(shù)組的首地址C.數(shù)組每一個元素的地址D.數(shù)組每個元素中的值
2.樹最適合用來表示()。
A.有序數(shù)據(jù)元素B.無序數(shù)據(jù)元素C.元素之間具有分層次關系的數(shù)據(jù)D.元素間無聯(lián)系的數(shù)據(jù)
3.如果對線性表的操作只有兩種,即刪除第一個元素,在最后一個元素的后面插入新元素,則最好使用()。
A.只有表頭指針沒有表尾指針的循環(huán)單鏈表B.只有表尾指針沒有表頭指針的循環(huán)單鏈表C.非循環(huán)雙鏈表D.循環(huán)雙鏈表
4.設無向圖G中有n個頂點e條邊,則其對應的鄰接表中的表頭結點和邊表接點的個數(shù)分別為()。
A.n,eB.e,nC.2n,eD.n,2e
5.若變量均已正確定義并賦值,以下合法的C語言賦值語句是()。
A.x=y==5;B.X=n%2.5:C.x+n=i;D.x=5=4+1:
6.
7.
8.對于哈希函數(shù)H(key)=key%13,被稱為同義詞的關鍵字是_______
A.35和41B.23和39C.15和44D.25和51
9.有以下程序:intfun(intn){if(n==l)returnl;elsereturn(n+fun(n一1)):}main{intx;scanf("%d",&x);x=fun(x);printf("%d\n",x):}執(zhí)行程序時,給變量X輸入10,程序的輸出結果是()。A.55B.54C.65D.45
10.下列不屬于軟件工程的3個要素的是
A.工具B.過程C.方法D.環(huán)境
11.下列關于c語言用戶標識符的敘述中正確的是()。
A.用戶標識符中可以出現(xiàn)下劃線和中劃線(減號)
B.用戶標識符中不可以出現(xiàn)中劃線,但可以出現(xiàn)下劃線
C.用戶標識符中可以出現(xiàn)下劃線,但不可以放在用戶標識符的開頭
D.用戶標識符中可以出現(xiàn)下劃線和數(shù)字,它們都可以放在用戶標識符的開頭
12.以下敘述中錯誤的是()。
A.改變函數(shù)形參的值,不會改變對應實參的值
B.函數(shù)可以返回地址值
C.可以給指針變量賦一個整數(shù)作為地址值
D.當在程序的開頭包含文件stdi0.h時,可以給指針變量賦NULL
13.下列定義數(shù)組的語句中錯誤的是()。
A.intnum[][3]={{1,2},3,4,5,6};
B.intnum[2][4]={{1,2},{3,4},{5,6}};
C.intnum[]={1,2,3,4,5,6};
D.intnum[][4]={1,2,3,4,5,6};
14.有以下程序voidsum(inta[]){a[0]-a[-1]+a[1];}main(){inta[10]={1,2,3,4,5,6,7,8,9,10};sum(&a[2]);printf(“%d\n”,a[2]);}程序運行后的輸出結果是A.6B.7C.5D.8
15.有以下程序:#include<stdio.h>#include<string.h>main(){printf(“%d\n”,strlen(“0\t\n\0C011\1”));}程序運行后的輸出結果是()。
A.3B.13C.1D.0
16.
17.設有以下定義則下面語句中錯誤的是()。A.a++;B.b++C.c++;D.d++;
18.公司中有多個部門和多名職員,每個職員只能屬于一個部門,一個部門可以有多名職員。則實體部門和職員間的聯(lián)系是()。
A.1:m聯(lián)系B.m:n聯(lián)系C.1:1聯(lián)系D.m:1聯(lián)系
19.對兩個數(shù)組a和b進行下列初始化:charm[]1="l234567":charn[]={1,2,3,4,5,6,7);則下列敘述正確的是()。A.數(shù)組m與數(shù)組n完全相同B.數(shù)組m與數(shù)組n長度相同C.數(shù)組m比數(shù)組n長1D.數(shù)組m與數(shù)組n中都存放字符串
20.下列選項中,不屬于數(shù)據(jù)管理員(DBA.職責的是()。
A.數(shù)據(jù)庫維護B.數(shù)據(jù)庫設計C.改善系統(tǒng)性能,提高系統(tǒng)效率D.數(shù)據(jù)類型轉換
二、2.填空題(20題)21.在軟件開發(fā)中,結構化方法包括結構化分析方法、結構化設計方法和結構化程序設計方法。詳細設計階段所采用的是【】方法。
22.函數(shù)調(diào)用語句:“fsets(buf,n,fp);”從fp指向的文件中讀入n個字符放到buf字符數(shù)組中,函數(shù)返回值為______。
23.以下程序的輸出結果是()。#include<stdio.h>voidswap(int*a,int*B){int*t;t=a;a=b;b=c;}main(){inti=3,j=5,*p=&i,*q=&j;swap(p,q);printf("%d%d\n",*p,*q);}
24.下面的程序實現(xiàn)的是從指針p所指向的地址的n個數(shù)中,找出最大的和最小的數(shù)據(jù),請?zhí)羁铡?/p>
fun(int*p,intn)
{int*q;
intmax,min;
max=min=*p;
for(q=p;【】;q++)
if(*q>max)max=*q;
elseif(*q<min)min=*q;}
25.實現(xiàn)算法所需的存儲單元多少和算法的工作量大小分別稱為算法的【】。
26.語句"int(*ptr)();"的含義是______是指向函數(shù)的指針,該函數(shù)返回一個int型數(shù)據(jù)。
27.以下程序段的輸出結果是【】。
inti=9;
printf("%o\n",i);
28.以下程序運行后的輸出結果是______。
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");
}
29.設在主函數(shù)中有以下定義和函數(shù)調(diào)用語句,且fun函數(shù)為void類型;請寫出fun函數(shù)的首部【】(要求形參名為b)。main(){doubles[10][22];intn;……fun(s);……}
30.下面程序有兩個printf語句,如果第一個printf語句輸出的是194,則第二個printf語句的輸出結果是【】。
main()
{inta[10]={1,2,3,4,5,6,7,8,9,0},*p;
p=a;
printf("%x\n",p);
printf("%x\n,p+9);
}
31.以下程序的輸出結果是【】。
#include<stdio.h>
voidswap(int*a,int*b)
{int*t;
t=a;a=b;b=t;
}
main()
{inti=3,j=5,*p=&i,*q=&j;
swap(p,q);printf("%d%d\n",*p,*q);
}
32.若有以下程序:
main()
{inta=4,b=3,c=5,t=0;
if(a<b)t=a;a=b;b=t;
if(a<c)t=a;a=c;c=t;
printf("%d%d%d\n",a,b,c);
}
執(zhí)行后的輸出結果是【】。
33.表示條件;10<x<100或x<0的C語言表達式是【】。
34.fun1函數(shù)的功能是將3個整數(shù)按由大到小的順序調(diào)整后依次放入a、b、c3個變量中,a中放最大數(shù),fun2函數(shù)的功能是交換兩個變量中的值。補足所缺語句。
fun2(int*x,int*y)
{intt;
t=*x;*x=*y;*y=t;
}
fun1(int*p1,int*p2,int*p3)
{if(*p3>*p2)fun2(*P2,*p3);
if(*p1<*p3)fun2(______);
if(*p1<*p2)fun2(______);
}
main()
{inta,b,c;
scanf("%d%d%d",&a,&b,&c);
fun1(&a,&b,&c);
printf("%d,%d,%d\n",a,b,c);
}
35.下列程序的輸出結果是______。
main()
{inta=2,b=4,e=6;
int*p1=&a,*p2=&b,*p;
*(p=&c)=*p1*(*p2);
printf("%d\n",c);
}
36.fun函數(shù)的功能是:首先對a所指的N行N列的矩陣,找出各行中的最大數(shù),再求這N個最大值中最小的那個數(shù)并作為函數(shù)值返回。請?zhí)羁铡?/p>
#include<stdio.h>
#defineN100
intfun(int(*a)[N])
{introw,col,max,min;
for(row=0;row<N;row++)
{for(max=a[row][0],col=1;col<N;col++)
if(【】)max=a[row][col];
if(row==0)min=max;
elseif(【】)min=max;
}
returnmin;
}
37.函數(shù)YangHui的功能是把楊輝三角形的數(shù)據(jù)賦給二維數(shù)組的下半三角,形式如下:
1
11
121
1331
14641
其構成規(guī)律是:
①第0列元素和主對角線元素均為1。
②其余元素為其左上方和正上方元素之和。
③數(shù)據(jù)的個數(shù)每行遞增1。
請將程序補充完整。
#defineN6
voidyanghui(intx[N][N])
{inti,j;
x[O][0]=1;
for(i=1;i<N;i++)
{x[i][0]=【】=1;
for(j=1;j<i;j++)
x[i][j]=【】;
}
)
38.定義inta=5,b;,則執(zhí)行表達式b=++a*--a之后,變量b的值為【】。
39.以下程序的輸出結果是【】。
main()
{chars[]="ABCD",*p;
for(p=s+1;p<s+4;p++)printf("%s\n",p);}
40.以下fun函數(shù)的功能是:累加數(shù)組元素中的值。n為數(shù)組中元素的個數(shù)。累加的和放入x所指的存儲單元中。
fun(intb[],intn,int*x)
{intk,r=0;
for(k=0;k<n;k++)r=【】;
【】=r;
}
三、1.選擇題(20題)41.設intb=2;,則表達式(b<<2)/(b>>1)的值是______。
A.0B.2C.4D.8
42.有以下程序:#include<stdio.h>main(){chars[]="159",*p;p=s;printf("%c",*p++);printf("%~",*p++);}程序運行后的輸出結果是()。
A.15B.16C.12D.59
43.若有以下的說明,對初值中整數(shù)2的正確引用方式是()。staticstruct{charch;inti;doublex;}a[2][3]={{{'a',1,3,45},{'b',2,7,98},{'c',31,93}}};
A.a[0][1].chB.a[0][1].iC.a[0][0].iD.a[0][2].i
44.有以下程序段:intk=0,a=1,b=2,c=3;k=a<b?b:a;k=k>c?c:k;執(zhí)行該程序段后,k的值是______。A.3B.2C.1D.0
45.請讀程序:#include<stdio.h>f(intb[],intn){inti,r;r=l;for(i=0;i<=n;i++)r=r*b[i];returnr;}main(){intxa[]={2,3,4,5,6,7,8,9};x=f(a,3);printf("%d\n",x);}上面程序的輸出結果是()
A.720B.120C.24D.6
46.函數(shù)ftell(fp)的作用是()。
A.得到fp所指向文件的當前讀寫位置B.初始化流式文件的位置指針C.移動流式文件的位置指針D.以上答案均正確
47.下列數(shù)據(jù)中,不合法的C語言實型數(shù)據(jù)是
A.0.123B.123e3C.2.1e3.5D.789.0
48.若有定義int*p[3];,則以下敘述中正確的是______。
A.定義了一個基類型為int的指針變量p,該變量有三個指針
B.定義了一個指針數(shù)組p,該數(shù)組含有三個元素,每個元素都是基類型為int的指針
C.定義了一個名為*p的整型數(shù)組,該數(shù)組含有三個int類型元素
D.定義了一個可指向二維數(shù)組的指針變量p,所指一維數(shù)組應具有三個int類型元素
49.下面程序段中,輸出*的個數(shù)是char*s="\ta\018bc";for(;*s!='\0';s++)printf("*");
A.9B.5C.6D.7
50.有以下函數(shù):charfun(char*p){returnP;}該函數(shù)的返回值是()。
A.無確切的值B.形參p中存放的地址值C.一個臨時存儲單元的地址D.形參p自身的地址值
51.有以下結構體說明和變量定義,如圖所示,指針p、q、r分別指向一個鏈表中的三個連續(xù)結點。structnode{intdata;tractnode*next;}*p,*q,*r;
現(xiàn)要將q和r所指結點的先后位置交換,同時要保持鏈表的連續(xù),以下錯誤的程序段是
A.r->next=q;q->next=r->next;p->next=r;
B.q->next=r->next;p-next=r;r->next=q;
C.p->next=r;q->next=r->next;r->next=q;
D.q->next=r->next;r->next=q;P->next=r;
52.以下能正確定義一維數(shù)組的選項是A.intnum[];
B.#defineN100intnum[N];
C.intnum[0..100];
D.intN=100;intnum[N];
53.下列能正確定義且賦初值的語句是()。
A.intn1=n2=10;
B.charc=32;
C.floatf=f+1.1;
D.doublex=12.3E2.5;
54.設x=011050,則x=x&01252的值是()。
A.0000001000101000
B.1111110100011001
C.0000001011100010
D.1100000000101000
55.設有以下語句:charstr1[]="string"mstr2[8],*str3,*str4=="string";則______不是對庫函數(shù)的正確調(diào)用。
A.strcpy(str1,"HELLO1");
B.strcpy(str2,"HELLO2");
C.strcpy(str3,"HELLO3");
D.strcpy(str4,"HELLO4");
56.若變量已正確定義并賦值,以下符合C++語言語法的表達式是()。
A.a:=b+1B.a=b=c+2C.int18.5%3D.a=a+7=c+b
57.有以下程序:main(){intk=5,n=0;while(k>0);{switch(k){default;break;case1:n+=k;case2;case3:n+=k;}k--;}printf("%d\n",n);}程序運行后的輸出結果是______。
A.0B.4C.6D.7
58.若以"a+"方式打開一個已存在的文件,則下列敘述正確的是()。
A.文件打開時,原有文件內(nèi)容不被刪除,位置指針移到文件末尾,可以進行添加或讀操作
B.文件打開時,原有文件內(nèi)容不被刪除,只能進行讀操作
C.文件打開時,原有文件內(nèi)容被刪除,只能進行寫操作
D.以上三種說法都不正確
59.有以下程序:voidf(intb[]){inti;for(i=2;i<6;i++)b[i]*=2;}main(){inta[10]={1,2,3,4,5,6,7,8,9,10},i;f(A);for(i=0;i<10;i++)printf("%d,",a[i]);}程序運行后的輸出結果是()。
A.1,2,3,4,5,6,7,8,9,10,
B.1,2,6,8,10,12,7,8,9,10,
C.1,2,3,4,10,12,14,16,9,10,
D.1,2,6,8,10,12,14,16,9,10,
60.下列程序執(zhí)行后輸出的結果是______。intd=1;fun(intp){intd=5;d+=p++;printf("%d,",D);}main(){inta=3;fun(A);d+=a++;printf("%d\n",D);}
A.8,12B.9,13C.8,4D.9,5
四、選擇題(20題)61.
62.表示關系M<=N<=P的C語言表達式為()。
A.(M<=N.AND(N<=P.
B.(M<=N.&&(N<=P.
C.(M<=N<=P.
D.(M<=N.&(N<=P.
63.
64.下面各選項中,均是C語言合法標識符的選項組是()。
A.
B.
C.
D.
65.
66.設有定義:“char*c;”,以下選項中能夠使字符型指針c正確指向一個字符串的()。
A.charstr[]="string";c=str;
B.scanf(%s,c):
C.c=getchar();
D.*c="strin9";
67.軟件按功能可以分為:應用軟件、系統(tǒng)軟件和支撐軟件(或工具軟件)。下面屬于應用軟件的是()。
A.編譯程序B.操作系統(tǒng)C.教務管理系統(tǒng)D.匯編程序
68.有以下程序
#include<stdio.h>
#include<stdlib.h>
intfun(intt)
{int*p;
p=(int*)malloc(sizeof(int));
*p=t;return*p;
}
main()
{inta;
a=fun(8);
printf("%d\n",a+fun(10));
}
程序的運行結果是
A.0B.10
C.18D.出錯
69.
70.在下列選項中,沒有構成死循環(huán)的是
71.if語句基本形式是:if(表達式)語句,以下關于“表達式”值的敘述中正確的是()。
A.必須是邏輯值B.必須是整數(shù)值C.必須是正數(shù)D.可以是任意合法的數(shù)值
72.下列數(shù)據(jù)結構中屬于非線性結構的是()。
A.隊列
B.線性表
C.二叉樹
D.棧
73.在面向對象方法中,不屬于“對象’’基本特點的是()。A.一致性B.分類性C.多態(tài)性D.標識唯一性
74.有如下程序段
structabc
{inta,b,c,s;};
main()
{structabcs[2]={{1,2,3},{4,5,6}};intt;
t=s[0].a+s[1].b;
printf("%d\n",t);
}
程序運行后輸出的結果是
A.5B.6
C.7D.8
75.下列敘述中正確的是()。A.在c程序的函數(shù)中不能定義另一個函數(shù)
B.在c程序中main函數(shù)的位置是固定的
C.C程序中所有函數(shù)之間都可以相互調(diào)用
D.每個C程序文件中都必須要有一個main函數(shù)
76.
77.若有定義:char*st=”howareyou”;,下列程序段中正確的是()。
A.
B.
C.
D.
78.有以下程序:
當執(zhí)行程序時,按下列方式輸入數(shù)據(jù)(從第l列開始,<;CR>;代表回車,注意:回車也是一個字符]12<;CR>;34<;CR>;則輸出結果是()。
A.12B.123C.1234D.12343
79.
80.
五、程序改錯題(1題)81.已知一個數(shù)列從0項開始的前3項為0,0,1,以后的各項都是其相鄰的前3項之和。下列給定的程序中,函數(shù)proc的功能是:計算并輸出該數(shù)列前n項的和sum。n的值通過形參傳人。例如,當n=20時,程序的輸出結果應為42762.000000。
請修改程序中的錯誤,使它能得到正確結果。
注意:不要改動maiil函數(shù),不得增行或刪行,也不得更改程序的結構。
試題程序:
#include<stdlib.h>
#include<conio.h>
#include<stdio.h>
doubleproc(intn)
{
doublesum,s0,s1,s2,s;
intk;
sum=1.0;
if(n<=2)
sum=0.0;
s0=0.0;
s1=0.0;
s2=1.0;
//****found****
for(k=4;k<n;k++)
}
{
s=s0+s1+s2;
sum+=S:
s0=s1;
s1=s2;
//****found****
s2=s;
returnsum;
}
voidmain
{
intn;
system("CLS");
printf("InputN=");
scanf("%d",&nJ;
printf("%f\n",proc(n));
}
六、程序設計題(1題)82.請編寫函數(shù)fun,其功能是:找出一維整型數(shù)組元素中最大的值所在的下標,并通過形參傳回。數(shù)組元素中的值已在主函數(shù)中賦予。
主函數(shù)中x是數(shù)組名,n是x中的數(shù)據(jù)個數(shù),max存放最大值。index存放最大值所在元素的下標。
注意:部分源程序給出如下。
請勿改動主函數(shù)main()和其他函數(shù)中的任何內(nèi)容,僅在函數(shù)fun()的花括號中填入你編寫的若干語句。
試題程序:
參考答案
1.B解析:當調(diào)用函數(shù)時,實參是一個數(shù)組名,則向函數(shù)傳送的是數(shù)組的首地址,函數(shù)中的形參可定義成以下三種形式:
①形參定義成數(shù)組;
②形參定義成可變長數(shù)組:
③形參定義為指針變量。
2.C
3.B
4.A
5.AB選項中運算符“%”的運算對象為整數(shù)。C選項中不能將變量賦給表達式“x+n”。D選項中不能將表達式“4+1”賦給常量5。故本題答案為A選項。
6.B
7.D
8.D
9.A函數(shù)intfun(intn)的功能是求1+2+…+n的值并返回。所以執(zhí)行程序時,給變量x輸入10后,執(zhí)行語句“x=fun(x);”,X的值將變?yōu)?到10中10個整數(shù)的累加和,即55。
10.D解析:本題考查了軟件工程的基本概念。軟件工程包括3個要素,即方法、工具和過程。方法是完成軟件工程項目的技術手段;工具支持軟件的開發(fā)、管理和文檔生成;過程支持軟件開發(fā)的各個環(huán)節(jié)的控制和管理。
11.B解析:在C語言中,合法的標識符由字母,數(shù)字和下劃線組成(故選項A不正確),并且第一個字符必須為字母或者下劃線(故選項B和選項D不正確).所以,B選項為所選.
12.C指針變量的值只能是存儲單元地址,而不能是一個整數(shù),故選項C錯誤。
13.BB選項中定義的數(shù)組為2行4列,而賦值時卻賦成了3行,所以錯誤。故本題答案為B選項。
14.A本題考查的是數(shù)組和函數(shù)。sum()函數(shù)接收一個int型數(shù)組作參數(shù),也可以把它看作是一個int型指針,語句a[0]=a[*1)+a(比的意思就是將參數(shù)指針指向內(nèi)容的前一個元素和后一個元素的值相加放到指針所指的位置.因此,主函數(shù)中調(diào)用sum(&a[2]);的意思就是讓a[2]=a[1]+a[3];,所以最后輸出的結果是6。應該選擇A。
15.AC語言中的轉義字符也是一個字符。字符串“0\\t\\n\\0C011\\1”,共有字符‘0’、‘\\t’、‘\\n’3個字符。strlen遇到‘\\0’字符計數(shù)結束,因此計數(shù)為3。故本題答案為A選項。
16.C
17.D
18.A部門到職員是一對多的,職員到部門是多對一的,因此,實體部門和職員間的聯(lián)系是l:m聯(lián)系。
19.C在m數(shù)組中賦值的是字符串,其長度為7,末尾有結束符\0,故字節(jié)數(shù)為8,而n數(shù)組中賦的是字符,其長度為7,故C選項正確。
20.DD)【解析】數(shù)據(jù)庫管理員(DataBaseAdministrator,DBA)是指對數(shù)據(jù)庫的規(guī)劃、設計、維護、監(jiān)視等的人員,其主要工作如下:數(shù)據(jù)庫設計。DBA的主要任務之一是數(shù)據(jù)庫設計,具體地說是進行數(shù)據(jù)模式的設計;數(shù)據(jù)庫維護。DBA必須對數(shù)據(jù)庫中的數(shù)據(jù)安全性、完整性、并發(fā)控制及系統(tǒng)恢復、數(shù)據(jù)定期轉儲等進行實施與維護;改善系統(tǒng)性能,提高系統(tǒng)效率。DBA必須隨時監(jiān)視數(shù)據(jù)庫的運行狀態(tài),不斷調(diào)整內(nèi)部結構,使系統(tǒng)保持最佳狀態(tài)與效率。
21.結構化設計結構化設計解析:在軟件開發(fā)中,結構化方法包括結構化分析方法、結構化設計方法和結構化程序設計方法。詳細設計階段所采用的是結構化設計方法。
22.buf的首地址buf的首地址解析:考查fgets()函數(shù)的功能,fgets()函數(shù)用來從文件中讀入字符串。調(diào)用格式為:fgets(buf,n,fp)。此處,fp是文件指針,buf是存放字符串的起始地址,n是一個int型變量。調(diào)用函數(shù)fgets()時,最多能讀入n-1個字符,系統(tǒng)自動在最后加字符串結束標志,并以buf作為函數(shù)值返回。
23.3535解析:本題考查函數(shù)中形參和實參的傳遞。在C語言函數(shù)中實參和形參傳遞具有不可逆性,參數(shù)只能由實參傳向形參,而不能由形參傳向實參,雖然swap函數(shù)的功能是實現(xiàn)兩個數(shù)的交換,但由于沒有返回值,故最終的輸出結果為35。
24.q<p+nq<p+n解析:考查對于函數(shù)的地址傳遞的掌握情況。通過地址傳遞可以在被調(diào)函數(shù)中對調(diào)用函數(shù)中的變量進行引用。
25.空間復雜度和時間復雜度算法的復雜性是指對一個在有限步驟內(nèi)終止算法和所需存儲空間大小的估計。算法所需存儲空間大小是算法的空間復雜性,算法的計算量是算法的時間復雜性。
26.ptrptr解析:本題考查函數(shù)指針的概念。函數(shù)指針的定義格式是:類型標識符(*旨針變量名)()。注:“類型標識符”為函數(shù)返回值的類型。
27.1111解析:本題考核的知識點是printf()函數(shù)的輸出格式。本題中定義了一個整型變量i并賦初值為9,然后要求以八進制輸出i的值,9的八進制數(shù)的表示為11。
28.010111212010111212解析:本題考查的是靜態(tài)局部變量的運用。靜態(tài)局部變量的作用域與普通局部變量一樣,但它的生存期將延長到程序運行結束。本題的主函數(shù)中使用一個for循環(huán)輸出循環(huán)變量i和fun(a)的值,由于a的值一直沒被修改過,所以三次調(diào)用的都是fun(5)。第1次調(diào)用,b=0,c=3,所以返回值為5+1+4=10;第2次調(diào)用,因為c是靜態(tài)局部變量,它仍然保存著上次調(diào)用結束時的值4,而b重新被創(chuàng)建和初始化為0,所以返回值為5+1+5=11;同理,第3次調(diào)用返回的是12。所以,程序最終輸出為:010111212。
29.
30.1a61a6解析:對于指針變量的運算,就是對地址的運算。本題中由于指針指向的是整型變量,所以,使指針變量移動9個位置也就是移動18個字節(jié)。注意,本題是以十六進制輸出的。
31.3535解析:考查swap()函數(shù)。函數(shù)swap(int*a,int*b)的功能是實現(xiàn)*a和*b中兩個數(shù)據(jù)的交換,在主函數(shù)中調(diào)用swap(p,q)后,參形指針變量a和b分別指向i和j,在swap(int*a,int*b)執(zhí)行完后,指針變量a和b分別指向j和i,而指針變量p,q所指向變量的值沒有發(fā)生變化,所以輸出結果為35。
32.503503解析:本題考查的是C語言中if語句的語句體。第一個if語句的語句體為t=a,第二個if語句的語句體為t=a。執(zhí)行第一個if語句時,條件a<b不成立,所以不執(zhí)行t=a,直接執(zhí)行語句a=b和b=t得a=3、b=0,然后判斷第二個if語句的條件a<c是否成立,即判斷3<5是否成立,顯然條件成立,執(zhí)行語句t=a得t=3,接著執(zhí)行a=c;c=t得a=5、c=3,所以a=5、c=3、b=0。
33.(x>10&&x<100)||x<0
34.*p1*p3*p1*p2。*p1,*p3*p1,*p2。解析:本題考查的知識點有3個,①指針變量作為形參,②函數(shù)的嵌套調(diào)用,③排序的基本方法。
35.88解析:本程序定義了3個指針變量p1、p2、p,并且將a、b的地址分別賦給p1、p2,則*p1=a=2,*p2=b=4,所以表達式*p1*(*p2)的值是8。在賦值語句的左邊是*(p=&c),即使指針p指向了變量c,因而*(P)代表了c的存儲單元,賦值語句“*(p=&c)=*p1*(*p2);”是把整數(shù)8賦給了變量c。
36.a[row][c01]>max或max<a[row][co1]max<min或min>maxa[row][c01]>max或max<a[row][co1]\r\nmax<min或min>max解析:本題有兩層for循環(huán),函數(shù)首先定義了整型變量row、col、max和min,其中row用于外循環(huán)的循環(huán)變量,col用于內(nèi)循環(huán)的循環(huán)變量,max記錄每行中的最人值,min記錄所有行最大值中的最小值。在內(nèi)循環(huán)中,首先給max賦初值為每行的第0個元素值,然后從第一個開始依次與max進行比較。如果大于max則將其值賦給max,當每一行循環(huán)結束,max記錄了每一行的最大值。所以第一個空應該填a[row][co1]>max或max<a[row][co1)。退出內(nèi)循環(huán),在第一次退出內(nèi)循環(huán)時,將min賦初值為第0行的max,然后在每次退出內(nèi)循環(huán)時,將min和每行的max比較,如果大于max,則將max值賦min,所以第二個空應該填max<min或min>max,當退出外循環(huán)時,rain為所有行中的最大值的最小值。
37.x[i][i]x[i-1][j-1]+x[i-1][j]或x[i-1][j]+x[i-1][j-1]x[i][i]\r\nx[i-1][j-1]+x[i-1][j]或x[i-1][j]+x[i-1][j-1]解析:在程序中用兩重循環(huán)。在第一層循環(huán)中將每行的第0列賦值為1,對角線上的元素賦值為1顯然在第一個空中應該填入對角線上的元素即x[i][i],在第2重循環(huán)中給每行其他元素賦值,而在每行中除了第0列和對角線的元素外其他元素為其對應的上一行中同列和同列的前一列的元素相加,所以在第二個空中應該填入x[i-1][j-1]+x[i-1][j]。
38.2525解析:#NAME?
39.BCDCDDBCD\r\nCD\r\nD解析:本題考查指向字符串的指針的運算方法。指針變量p首先指向字符串中的第一個字符A,執(zhí)行p=s+1后,p指向字符串中的第二個字符B,然后輸出值'BCD'并換行,依次執(zhí)行循環(huán)語句。
40.r+b[k]或*(b+k)+r*xr+b[k]或*(b+k)+r\r\n*x解析:r是累加的和,k是數(shù)組b的下標,因此有r=r+b[k];由于x是傳地址調(diào)用,*x是其指向存儲單元的內(nèi)容,要把累加的和放入x所指的單元,因此有*x=r。
41.D
42.A解析:語句p=s將指針變量p指向字符數(shù)組s,第一次輸出時,由于++和*為同一優(yōu)先級,而結合方向為自右向左,所以,*p++相于*(p++)。但又因為“++”在p的右側,所以,先輸出*p,得到s[0]的值,然后P++,P指向s[1],故第二次輸出時,輸出s[1]的值,所以輸出結果為15。
43.B解析:結構體數(shù)組中對結構體成員的引用要先引用到數(shù)組元素,然后像對待普通的結構體變量一樣來對待結構體數(shù)組元素就可以了。注意:引用結構體變量中的數(shù)據(jù)。
44.B解析:本題考查的知識點是條件表達式.條件運算符?:是C語言中唯一的三目運算符,它的規(guī)則是先計算左邊運算分量,如果為“真”(非0),則返回中間運算分量的值,否則返回右邊運算分量的值。本題中因為a<b為“真”,所以第1個條件表達式的值為b的值2,所以k=2。然后又因為k>c為“假’,所以第2個表達式的值為k的值2。所以本題應該選擇B。
45.B
46.A解析:位置指針當前值函數(shù)ftell()的基本調(diào)用格式為:ftell(fp)。
ftell()函數(shù)的參數(shù)說明:“fp”是指向文件的文件型指針。
ftell函數(shù)的功能:得到fp所指向文件的當前讀寫位置,即位置指針的當前值,如果函數(shù)的返回值為-1L,表示出錯。
47.C解析:在C語言中,實數(shù)有兩種形式表示,即十進制數(shù)形式和指數(shù)形式,在指數(shù)形式中,e3、2.le3.5、.e3、e等都是不合法的指數(shù)形式。再如123e3或123E3都代表123乘以10的3次方。注意,字母e的前面必須有數(shù)字,且e的后面必須是整數(shù)。
48.B解析:由于運算符[]優(yōu)先級比*高,int*p[3];相當于int*(p[3]);,表示數(shù)組p的三個元素都是指針變量,且每個元素都是基類型為int的指針。
49.C解析:本題中,格式符。表示的是八進制無符號形式輸出整型數(shù)(不帶前導0),字符常量在內(nèi)存中占一個字節(jié),存放的是ACSII碼代碼值。C語言規(guī)定,所有字符常量都作為整型量來處理,在計算機內(nèi)部,其對應的整數(shù)值就是ACSII字符集中該字符的序號,即&*s中有幾個字符就輸出幾個*。
50.B
51.A解析:題目中要求將q和r所指結點的先后位置交換,即要求p所指結點的指針域指向r所指向的結點,r所指向的結點的指針域指向q所指向的結點,q所指向的結點的指針域指向r所指向的結點。選項A首先讓r所指向的指針的指針域指向q所指向的結點,這樣就將r所指向的結點的指針域指向的結點丟失了。選項B首先q所指向的結點的指針域指向r所指向的結點的指針域所指向的結點,然后,讓p所指向結點的指針域指向r所指向的結點,最后讓r所指向的結點的指針域指向q所指向的結點,滿足要求。選項C首先讓p所指向結點的指針域指向r所指向的結點,然后讓q所指向的結點的指針域指向r所指向的結點的指針域所指向的結點,最后讓r所指向的結點的指針域指向q所指向的結點,滿足要求。選項D首先讓q所指向的結點的指針域指向r所指向的結點的指針域所指向的結點,然后,讓r所指向的結點的指針域指向q所指向的結點,最后讓P所指向結點的指針域指向r所指向的結點,滿足要求。
52.B解析:選項A定義數(shù)組時省略了長度,而C語言中規(guī)定,只有在定義并同時進行初始化時,數(shù)組的長度才可以省略,數(shù)組的長度為初始化時候的成員個數(shù),故選項A錯誤;在C語言中規(guī)定,數(shù)組的長度必須是一個整數(shù)或整型常量表達式,故選項C不正確:定義時數(shù)組的長度不能使用變量表示,故選項D不正確,所以,4個選項中選項B符合題意。
53.B解析:C語言規(guī)定,可以在定義變量的同時給變量賦初值,稱為變量初始化。在選項A)中在給n1和n2進行賦初值,但變量02沒有定義;在選項C)中定義變量f時,不能在賦值表達式的右邊出現(xiàn)變量f自身,所以選項C)錯誤:在選項D)用指數(shù)表達式的常量中,字母E后面的數(shù)應該為整數(shù),而不應該為小數(shù)形式。因此,選項B)正確。
54.A解析:本題主要考查按位與運算,x=011050的二進制形式為0001001000101000,01252的二進制形式為0000001010101010,兩者相與得00000010001010000。
55.C解析:C語言中:strcpy(st1,st2);,其兩個參數(shù)均為字符指針或字符數(shù)組,選項C中的目的串指針str3沒有指向具體有效的存儲單元,故是錯誤的調(diào)用。
56.B解析:a=b=c+2實際上相當于a=(b=c+2),進而可分解為兩個表達式:b=c+2和a=b。注意:選項A)中包含一個不合法的運算符“:=”;選項C)應改為(int)18.5%3;選項D)可理解為兩個表達式:a+7=c+b和a=a+7,其中第一個是錯的,因為C++語言規(guī)定賦值號的左邊只能是單個變量,不能是表達式或常量等。注意:C++語言賦值語句的運用,
57.D解析:在switch語句中,若case語句后沒有break語句,則執(zhí)行完本層case后會繼續(xù)執(zhí)行后面case中的操作。k的初值為5,while條件成立,進入switch(5),執(zhí)行default語句,退出switch,執(zhí)行k--后得4,再進入while循環(huán),執(zhí)行switch(4),退出switch,再執(zhí)行k--后得3,繼續(xù)while循環(huán),執(zhí)行switch(3),n=n+k=3,再執(zhí)行k--后得2,進入while循環(huán),執(zhí)行case2,再執(zhí)行n=n+k=5,然后執(zhí)行k--后得1,最后一次進入while循環(huán),執(zhí)行case1,n=n+k=6,然后繼續(xù)執(zhí)行case2和case3后的語句,n=n+k=7,且執(zhí)行k--后得0,此時while條件不滿足,退出循環(huán),輸出n的值為7。
58.A解析:本題考查文件使用方式標識符,以“a+”方式打開一個己存在的文件,則表示保留文件中原有的數(shù)據(jù),文件的位置指針在文件末尾,此時,可以進行追加或讀操作。
59.B解析:本題在調(diào)用函數(shù)時,實參是數(shù)組名也是把數(shù)組a的首地址傳遞給形參,由條件i=2且i<6得出函數(shù)將列以a[2]開始的4個元素(3、4、5、6)進行乘2操作,結果分別是a[2]=6、a[3]=8、a[4]=10、a[5]=12。a[0]、a[1]、a[6]、a[7]、a[8]、a[9]的值沒有發(fā)生變化。
60.C解析:本題執(zhí)行過程如下:首先調(diào)用fun函數(shù),使得實參a的值3傳遞給形參p,得到局部變量d=8,打印出局部變量d的值8;返回主函數(shù)執(zhí)行“d+=a++”,此處d為全局變量,所以d=1+3+4(由于本題是值傳遞,所以在函數(shù)run中對p值的改變并不能引起a的改變),故本題材的輸出是8,4。
61.C
62.BM<=N和N<=P是邏輯與的關系,應使用運算符&&。
63.D
64.B合法的標識符由字母、數(shù)字和下劃線組成,并且第一個字符必須為字母或下劃線,用戶定義的標識符不能與關鍵字相同。選項A),數(shù)字不能為第一個字母,auto為關鍵字;選項c)中,也是數(shù)字不能為第一個字母,else為關鍵字;選項D)中負號不合法。
65.D
66.A選項B是從鍵盤上輸入字符串,選項C是接收字符,選項D不正確。
67.C解析:軟件按功能可以分為:應用軟件,系統(tǒng)軟件、支撐軟件(或工具軟件)。應用軟件是為解決特定領域的應用而開發(fā)的軟件。例如,事務處理軟件、工程與科學計算軟件,實時處理軟件,嵌入式軟件,人工智能軟件等應用性質不同的軟件。因此選項C教務管理系統(tǒng)屬于應用軟件。系統(tǒng)軟件是計算機管理自身資源,提高計算機使用效率并為計算機用戶提供各種服務的軟件。如操作系統(tǒng),編譯程序,匯編程序,網(wǎng)絡軟件,數(shù)據(jù)庫管理系統(tǒng)等。因此選項A、B、D都屬于系統(tǒng)軟件。
68.C本題考查函數(shù)的調(diào)用。題目給出的程序可以分為兩個部分,一個是函數(shù)fun,另一個是主函數(shù)ma
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- T-ZSA 272-2024 高磁導率低矯頑力FeNiMnSi 軟磁合金
- 二零二五年度養(yǎng)老公寓入住與心理咨詢服務合同
- 二零二五年度房屋買賣及家居升級借款協(xié)議
- 2025年度生鮮配送與電商渠道合作合同范本
- 二零二五年度互聯(lián)網(wǎng)公司業(yè)績對賭協(xié)議約定倍收益合同
- 2025年度退房合同租賃期滿通知協(xié)議
- 二零二五年度人工智能產(chǎn)業(yè)股東入股合同
- 2025年度新能源技術研發(fā)中心委托管理合同協(xié)議書
- 二零二五年度健身俱樂部合伙開店經(jīng)營協(xié)議
- 二零二五年度手機行業(yè)經(jīng)銷商返利管理細則
- 2020-2024年五年高考歷史真題分類匯編(全國)專題14 中國古代史(非選擇題)(解析版)
- 電子教案-《3D打印技術概論》
- 安全生產(chǎn)責任體系重點崗位履職清單
- 四川省成都市2024年中考道德與法治真題試卷(含答案)
- 《東北財經(jīng)大學審計》課件
- 牧童謠課件教學
- 大學物理實驗(緒論)學習通超星期末考試答案章節(jié)答案2024年
- 圖書出版項目合作協(xié)議
- 《現(xiàn)代家政導論》電子教案 2.2模塊二項目二家庭制度認知
- 商務禮儀課件教學課件
- 部編版七年級歷史下冊全冊導學案
評論
0/150
提交評論