a、選擇題(***20題,每題1.5分,* * * 30分。每道題有五個備選答案,前10題為選擇題,即
每道題有且只有壹個正確答案,選對了就打分;10後為不定選擇題,即每道題有1到5個正確答案,只有
只有所有的選擇都是對的,才能得分)。
1.微型計算機的性能主要取決於()。
a)內存b)主板c) CPU d)硬盤e)顯示器
2.128kb的內存用十六進制表示,它的最大地址碼是()。
a)10000 B)EFFF C)1 ffff D)FFFFF E)FFFF
3.能把高級語言程序轉換成目標程序的是()。
a)調試程序b)解釋程序c)編輯程序d)編譯程序e)鏈接程序。
4.A = 110010b,B = 00001111b,C = 01016558。
a)01011110 B)00001111 C)01111100D)1100
5.計算機病毒感染的必要條件是()。
a)在內存中運行病毒程序
b)讀寫磁盤。
c)運行存儲器中包含病毒的可執行程序。
d)復制文件
e)刪除文件
6.TCP/IP協議* * *有()層協議。
3 B 4 C 5D 6 E 7
7.192.168.0 . 1屬於()。
A)A類地址B)B類地址B)C類地址D)D類地址E)E類地址
8.對給定的整數序列(54,73,21,35,67,78,63,24,89)從小到大排序時,采用快速排序的個數。
掃描的結果是()。
A)(24,21,35,54,67,78,63,73,89)
B)(24,35,21,54,67,78,63,73,89)
C)(24,21,35,54,67,63,73,78,89)
D)(21,24,35,54,63,67,73,78,89)
(24,21,35,54,67,63,73,78,89)
9.對於壹棵有n個節點的完全二叉樹,二叉樹的高度h是()。
a)n/2b)log2n C)(log2n)/2d);b、字符編號(30);
c、int x[];d、int x[5]={1,2,3 };
8.該數組被定義為“int a[4][5];”,引用“*(a+1)+2”表示()。
a,a[1][0]+2 B,數組a第1行第二列元素的地址。
c,a[0][1]+2 D,數組a第1行第二列元素的值。
9.a是int變量,C是字符變量。下列哪個輸入語句是錯誤的()。
a、scanf ("%d,%c ",& amp壹,& ampc);b、scanf (" %d%c ",a,c);
c、scanf (" %d%c ",& amp壹,& ampc);d、scanf ( "d=% d,c=%c ",& amp壹,& ampc);
10.將整數變量A和B中較小的值賦給變量c,下列說法中正確的是()。
a、c = =(a & lt;b)?甲:乙;b、c = if(a & lt;b)a else b;
c、c =(a & lt;b)?甲:乙;d 、( a & ltb)?c = a:c = b;
11.將整數變量A和B的較大值賦給變量c,下列說法中正確的是()。
a、c = =(a & gt;b)?甲:乙;b、c =(a & gt;b)?甲:乙;
c、c = if(a & gt;b)a else b;d 、( a & gtb)?c = a:c = b;
12.在邏輯運算符中,運算優先級從高到低是()。
阿、阿& amp& amp, !,| | B ,| |,& amp& amp, !c 、& amp& amp, ||, !d、啊!,& amp& amp, ||
13,在C語言程序中()
函數的定義可以嵌套,但是函數的調用不能嵌套。
函數的定義和調用都不能嵌套。
c函數的定義不能嵌套,但是函數的調用可以嵌套。
d、函數定義和函數調用可以嵌套。
14和C語言中唯壹的文件類型是()。
a、索引文件和文本文件;ASCII文件和二進制文件。
c,壹個文本文件d,壹個二進制文件。
15.如果變量已經被正確定義和賦值,那麽符合C語言語法的表達式就是()。
a、a=7+b+c,a++ B、a = a+7;c、int(12.3%4) D、a=a+7=c+b
16,用INTA [] = {10,11,12},* p = &;a[0];然後執行* p++;* p+= 1;a [0],a [1],a [2]的值依次為()。
A.10,11,12 B.11,12,12 C.10,12,12 D.11,165438+
17、ch已知為字符變量,下列正確的賦值語句是()。
a、ch='\123' B、ch='xfff' C、ch='\08' D、ch='\ '
18.在下面的函數調用語句中,包含的參數個數是()。
a、1 B、2 C、4 D、5
Func((exp1,exp2),(exp3,exp4,exp 5));
19,下列說法正確的是()
A.輸入項可以是實常數,如scanf("%f ",3.5);
b、只有格式控件,沒有輸入項,也能正確地將數據輸入內存,如:scanf("a=%d,b = % d ");
C.當輸入壹個實數據時,格式控件可以指定小數點後的位數,如:scanf("%4.2f ",&;f);
D.輸入數據時,必須指定變量地址,例如scanf("%f ",&;f);
20、程序輸出錯誤的結果,下列哪些因素可以排除()。
A.算法錯誤b .運行時輸入數據不正確
c、編譯失敗d、系統資源分配不當。
21.要給字符變量A賦壹個初始值,下列哪種說法是正確的()?
a、char a = ' 3b、char a = " 3
c、char a=%;d、char a = *;
22.數組被定義為“int a[4][5];”,引用“a[1]+3”表示()。
A,數組A第1行第三列元素的地址b,數組A第1行第三列元素的值。
c、數組A的第四行的第壹個地址d和數組A的第四列的第壹個地址。
第三,程序閱讀
1,下面程序的輸出是。
主()
{ int x = 2;
while(x-);
printf("%d\n ",x);
}
2.以下程序的運行結果是。
主()
{ int m = 5;
if(m++ & gt;5) printf("%d\n ",m);
else printf("%d\n ",m ――);
}
3.執行以下程序段後,I的值為,J的值為,K的值為。
int a,b,c,d,I,j,k;
a = 10;b = c = d = 5;I = j = k = 0;
for(;a & gtb;++b)i++;
while(a & gt;++c)j++;
做k++;while(a & gt;d++);
4.以下程序的輸出是。
主()
{ int k=2,m=4,n = 6;
int * pk = & ampk,* pm = & ampm,* p;
*(p = & amp;n)= * PK *(* pm);
printf("%d\n ",n);
}
5.以下程序的輸出是。
fun1(int a,int b)
{ int c;
a+= a;b+ = b;
c=fun2 ( a,b);
返回c * c
}
fun2( int a,int b)
{ int c;
c = a * b % 3;
返回c;
}
主()
{ int x=11,y = 19;
printf("%d\n ",fun1(x,y));
}
6.以下程序的輸出是z =和r =。
func(int a,int b)
{ int c;
c = a+b;
返回c;
}
主()
{ int x=6,y=7,z=8,r;
r=func((x -,y++,x+y),z-);
printf("z=%d,r=%d\n ",z,r);
}
7.以下程序的輸出結果是。
主()
{ int aa[3][3]={{2},{4},{6}},I,* p = & ampaa[0][0];
for(I = 0;我& lt2;i++)
{ if(i==0)
aa[I][I+1]= * p+1;
else ++ p;
printf("%d ",* p);
}
printf(" \ n ");
}
8.以下程序的輸出結果:。
#定義X 5
#定義Y X+1
#定義Z Y*X/2
主()
{ int a;
a = Y;
printf("%d,%d\n ",Z,-a);
}
第四,按程序填空
Findmax返回數組s中最大元素的下標,數組中元素的個數由t傳入,請填入空格。
findmax(int s[ ],int t)
{ int k,p;
for(p=0,k = p;p & ltt;p++)
if(s[p]& gt;s[k]);
返回;
}
有以下程序段:
s = 1.0;
for(k = 1;k & lt= n;k++)s = s+1.0/(k *(k+1));
printf("%f\n ",s);
請填空使下面的程序段的功能完全等同於它。
s = 0.0
;
k = 0;
做
{ s = s+d;
;
d = 1.0/(k *(k+1));
}
while();
printf("%f\n ",s);
3.下面的程序計算從終端輸入的字符中每個大寫字母的個數,4。計算num[0]中字母A的個數,5。其他人也是如此。用回車結束輸入。6.請填空。
#包含“stdio.h”
#包含“ctype.h”
主()
{ int num[26]={0},I;
char c;
而(()!='\n ')
if(I supper(c))num[]+= 1;
for(I = 0;我& lt26;i++)
if (num[i]) printf("%c: %d\n ",i+'A ',num[I]);
}
4.下面這個fun函數的作用是反轉壹個字符串的內容。請填空。
#包含" string.h "
void fun(char str[])
{ int i,j,k;
for(i=0,j =;我& ltj;i++,)
{ k = str[I];str[I]= str[j];str[j]= k;}
}
5.下面這個程序的作用是:從鍵盤輸入幾個學生的分數,統計並輸出最高分和最低分,輸入負數時結束輸入。請填空。
主()
{ float x,amax,amin
scanf("%f ",& ampx);
amax = x;Amin = x;
while()
{ if(x & gt;amax)amax = x;
else if(x & lt;阿明);
;
}
printf(" \ namax = % f \那敏=%f\n ",amax,Amin);
}
6.輸入若幹個字符,分別統計數字字符數和英文字母數,輸入換行符時輸出統計結果,操作結束。
# include & ltstdio.h & gt
void main()
{ char ch;
而(()!='\n ')
{ if(ch & gt;= ' 0 ' & amp& ampch & lt= ' 9 ')s 1++;
如果((ch & gt= ' a ' & amp& ampch & lt= ' z ')| |)s2++;}
printf("%d,%d\n ",s1,S2);
}
編程問題
輸入壹行數字字符(以回車結束)。請使用數組元素作為計數器來計算每個數字字符的個數,並輸出統計結果。用下標為0的元素計算“0”的字符數,用下標為1的元素計算“1”的字符數。
# include & ltstdio.h & gt
主()
{
}
2.下面的findmax函數將計算數組中最大的元素及其下標值和地址值。請編寫*findmax()函數。
# include & ltstdio.h & gt
*findmax(int *s,int t,int *k)
{
}
主()
{ int a[10]={12,23,34,45,56,67,78,89,11,22},k,* add
add=findmax(a,10,& ampk);
printf("%d,%d,%o\n ",a[k],k,add);
}
3.寫壹個程序求1-3+5-7+…-99+101的值。
# include & ltstdio.h & gt
主()
{ }
4.下面的程序將字符串中從第m個字符開始的所有字符復制到另壹個字符串中,在main函數中輸入該字符串和m的值並輸出復制結果,在被調用的函數copystr中完成復制。請編寫copystr函數。
# include & ltstdio.h & gt
# include & ltstring.h & gt
主()
{ int m;
char str1[80],str 2[80];
printf("請輸入壹個字符串:\ n ");
gets(str 2);
printf("輸入m:\ n ");
scanf("%d ",& ampm);
if(strlen(str 2)& lt;m ) printf("錯誤輸入!\ n ");
其他
{ copystr(str1,str2,m);
printf("結果為:%s\n ",str 1);
}
}
void copystr(char *p1,char *p2,int m)
{
}
編寫invert函數以逆序存儲數組中的數字。在操作中,只能使用壹個臨時存儲單元,不能打開其他數組。
/*參數n是數組中元素的數量*/
void invert(int a[ ],int n)
{
}
6.maxmin的作用是從發送的三個數中選擇最大和最小的個數,通過形參返回給調用函數。試著寫這個函數,
主()
{ int a,b,c,max,min
printf("請輸入三個整數:\ n ");
scanf("%d,%d,%d ",& amp壹,& ampb & amp;c);
maxmin(a、b、c和amp馬克斯& ampmin);
printf("a=%d,b=%d,max=%d,min=%d\n ",a,b,c,max,min);
}
void maxmin(int a,int b,int c,int *max,int *min)
{
}