c语言题库325,2012年二级C语言笔试模拟325
單項選擇題
1. 線性表L:(a1,a2,a3,…,ai,…,an),下列說法正確的是( ? ?)。
A) 每個元素都有一個直接前件和直接后件
B) 線性表中至少要有一個元素
C) 表中諸元素的排列順序必須是由小到大或由大到小
D) 除第一個元素和最后一個元素外,其余每個元素都有一個且只有一個直接前件和直接后件
2. ?如果進棧序列為e1,e2,e3,e4,則可能的出棧序列是( ? ?)。
A) e3,e1,e4,e2
B) e2,e4,e3,e1
C) e3,e4,e1,e2
D) 任意順序
3. 下列對于軟件測試的描述中正確的是( ? ?)。
A) 軟件測試的目的是證明程序是否正確
B) 軟件測試的目的是使程序運行結果正確
C) 軟件測試的目的是盡可能多地發現程序中的錯誤
D) 軟件測試的目的是使程序符合結構化原則
4. 下列不屬于軟件工程的3個要素的是( ? ?)。
A) 工具
B) 過程
C) 方法
D) 環境
5. 下面不屬于軟件設計原則的是( ? ?)。
A) 抽象
B) 模塊化
C) 自底向上
D) 信息隱蔽
6. 面向對象程序設計中程序運行的最基本實體是( ? ?)。
A) 對象
B) 類
C) 方法
D) 函數
7. 下列數據模型中,具有堅實理論基礎的是( ? ?)。
A) 層次模型
B) 網狀模型
C) 關系模型
D) 以上三個都是
8. ?設有部門和職員兩個實體,每個職員只能屬于一個部門,一個部門可以有多名職員,則部門與職員實體之間的聯系類型是( ? ?)。
A) m
B) 1:m
C) m:k
D) 1:1
9. ?數據庫、數據庫系統和數據庫管理系統之間的關系是( ? ?)。
A) 數據庫包括數據庫系統和數據庫管理系統
B) 數據庫系統包括數據庫和數據庫管理系統
C) 數據庫管理系統包括數據庫和數據庫系統
D) 三者沒有明顯的包含關系
10. 關系運算中的選擇運算是( ? ?)。
A) 從關系中找出滿足給定條件的元組的操作
B) 從關系中選擇若干個屬性組成新的關系的操作
C) 從關系中選擇滿足給定條件的屬性的操作
D) A) 和B) 都對
11. 結構化程序由三種基本結構組成,三種基本的結構組成的算法( ? ?)。
A) 可以完成任何復雜的任務
B) 只能完成部分復雜的任務
C) 只能完成符合結構化的任務
D) 只能完成一些簡單的任務
12. ?算法具有五個特性,以下選項中不屬于算法特性的是( ? ? )。
A) 有窮性
B) 簡潔性
C) 可行性
D) 確定性
13. 以下敘述中正確的是( ? ?)。
A) C程序的基本組成單位是語句
B) C程序中的每一行只能寫一條語句
C) 簡單C語句必須以分號結束
D) C語句必須在一行內寫完
14. 下列程序的輸出結果是( ? ?)。
main()
{double d=3.2;int x,y;
x=1.2; y=(x+3.8)/5.0:
printf{"%d\n",d*y};}
A) 3
B) 3.2
C) 0
D) 3.07
15. 以下不合法的字符常量是( ? ?)。
A) '\018'
B) '\'"
C) '\\'
D) '\xcc'
16. 以下程序執行后x的值是( ? ?)。
main()
{ ? ?int x,y=252,1=386,*m=&y,*z=&i;
x=(z==m):
printf("%d",x);}
A) 252
B) 1
C) O
D) 運行時出錯,x無定值
17. ?已有定義:char c;,程序前面已在命令行中包含ctype.h文件,不能用于判斷c中的字符是否為大寫字母的表達式是( ? ?)。
A) isupper(c)
B) 'A'<=c<='Z'
C) 'A'<=c&&<='Z'
D) c<=('z'-32)&&('a'-32)<=c
18. ?以下程序段中與語句k=a>b?(b>c?1:0):0;功能等價的是( ? ?)。
A) if((a>b)&&(b>c))k=1;
else k=0;
B) if((a>b)||(b>c))k=1;
else k=0;
C) if(a<=b)k=0;
else if(b<=c)k=1;
D) if(a>b)k=1;
else if(b>c)k=1;
else k=0;
19. ?下列敘述中正確的是( ? ?)。
A) break語句只能用于switch語句
B) 在switch語句中必須使用default
C) break語句必須與switch語句中的case配對使用
D) 在switch語句中,不一定使用break語句
20. 已知:
int t=0;
while(t=1)
{...}
則以下敘述正確的是()。
A)?循環控制表達式的值為O
B) 循環控制表達式的值為1
C) 循環控制表達式不合法
D) 以上說法都不對
21. ?設有定義:int k=0;,以下選項的四個表達式中與其他三個表達式的值不相同的是( ? ?)。
A) k++
B) k+=1
C) ++k
D) k+1
22. ?若有語句:char *line[5];,以下敘述中正確的是( ? ?)。
A) 定義line是一個數組,每個數組元素是一個基類型為char的指針變量
B) 定義line是一個指針變量,該變量可以指向一個長度為5的字符型數組
C) 定義line是一個指針數組,語句中的*號稱為間址運算符
D) 定義line是一個指向字符型函數的指針
23. 對下述程序的判斷中,正確的是( ? ?)。
#include<stdio.h>
void main()
{ ? ?char*p,s[128];
p=s;
while(strcmp(s,"End"))
{ printf("Input a string:");gets(s);p=s;
while(*p)
putchar(*p++);}}
A) 此程序循環接收字符串并輸出,直到接收字符串“End”為止
B) 此程序循環接收字符串,接收到字符串“End”則輸出,否則程序終止
C) 此程序循環接收字符串并輸出,直到接收字符串“End”為止,但因為代碼有錯誤,程序不能正常工作
D) 此程序循環接收字符串并將其連接在一起,直到接收字符串“End”為止,輸出連接在一起的字符串
24. ?有以下程序:
int fl(int x,int y){return x>y?x:y;}
int f2[int x,int y}{ return x>y?y:x;}
main()
{int a=4,b=3,c=5,d=2,e,f,g;
e=f2(f1(a,b),f1(c,d);f=f1(f2(a,b),f2(c,d));
g=a+b+c+d-e-f;
printf{"%d,%d,%d\n",e,f,g);
}
程序運行后的輸出結果是()。
A) 4,3,7
B) 3,4,7
C) 5,2,7
D) 2,5,7
25. 設有定義:char p[]={'1','2','3'),*q=p;,以下不能計算出一個char型數據所占字節數的表達式是( ? ?)。
A) sizeof(p)
B) sizeof(char)
C) sizeof(*q)
D) sizeof(p[0])
26. 若有說明:int*p,m=5,n;,以下正確的程序段是( ? ?)。
A) p=&n;scanf("%d",&p);
B) p=&n;scanf("%d",*p)
C) scanf("%d",&n);*p=n;
D) p=&n;*p=m;
27. ?以下不正確的定義語句是( ? ?)。
A) double x[5]={2.0,4.0,6.0,8.0,10.0};
B) int y[5]={0,1,3,5,7,9};
C) char c1[]={'1','2','3','4','5'};
D) char c2[]={'}x10','\xa','\x8'};
28. 若要求定義具有10個int型元素的一維數組a,則以下定義語句中錯誤的是( ? ?)。
A) #define N 10
int a[N];
B) #define n 5
int a[2*n];
C) int a[5+5];
D) int n=10,a[n].;
29. 下列程序執行后的輸出結果是( ? ?)。
void func(int *a,intb[])
{b[0]=*a+6;}
main()
{ ? ?int a,b[5];
a=0; b[0]=3;
func(&a,b);printf("%d\n",b[0]);}
A) 6
B) 7
C) 8
D) 9
30. 有以下程序:
void ss(char *s,char t)
{ while(*s)
{if(*s==t)*s=t-'a'+'A';
S++;}}
main()
{ char strl[100]="abcddfefdbd",c='d':
ss(strl,c);printf("% s\n" ,strl);}
程序運行后的輸出結果是()。
A)?ABCDDEFEDBD
B) abcDDfeDbD
C) abcAAfefAbA
D) Abcddfefdbd
31. ?閱讀下列程序,則在執行后,程序的運行結果為( ? ?)。
#include "stdio.h"
#include "string.h"
main()
{ char a[30]="nice fo meet you!";
strcpy(a+strlen(a)/2," you");
printf("% s\n" ,a);}
A)?nice to meet you you
B) nice to
C) meet you you
D) nice to you
32. 下列關于字符串的說法中錯誤的是( ? ?)。
A) 在C語言中,字符串是借助于字符型一維數組來存放的,并規定以字符'\0'作為字符串結束標志
B) '\0'作為標志占用存儲空間,計入串的實際長度
C) 在表示字符串常量的時候不需要人為在其末尾加入'\0'
D) 在C語言中,字符串常量隱含處理成以'\0'結尾
33. 若有定義語句:char s[10]="1234567\0\0";,則strlen(s)的值是( ? ?)。
A) 7
B) 8
C) 9
D) 10
34. 有以下程序:
#include <stdio.h>
#define N 4
void fun(int a[][N],int b[])
{ ? ?int i;
for (i=0;i<N;i++)b[i]=a[i][i];
}
main[)
{ ? ?int x[][N]={{1,2,3},{4},{5,6,7,8},{9,10}},y[N],i;
fun(x,y);
for (i=0;i<N;i++)printf("%d,",y[i]);
printf("\n");
}
程序的運行結果是()。
A) 1,2,3,4,
B) 1,0,7,0,
C) 1,4,5,9,
D) 3,4,8,10,
35. ?以下程序的輸出結果是()。
#include<stdio.h>
int fun(int n,int*s)
{ ? ?int f1,f2;
if(n==0)(n==1)
*S=1;
else
fun(n-1,&f1);
fun(n-2,&f2);
*s=f1+f2;
}
}
void main()
{ ? ?int x;
fun(6,&x);
prinf("\n%d",x);}
A) 7
B) 13
C) 9
D) 10
36. 有以下程序:
int fun(int x[],int n)
{ ? ?static int sum=0,i;
for(i=0;i<n;i++)sum+=x[i];
return sum;
}
main()
int a[]={1,2,3,4,5},b[]={6,7,8,9},s=0;
s=fun(a,5)+fun(b,4);printf("%d\n",s);
}
程序執行后的輸出結果是()。
A) 45
B) 50
C) 60
D) 55
37. ?以下程序的輸出結果是( ? ?)。
#include<stdio.h>
int a[3][3]={1,2,3,4,5,6,7,8,9},*p;
main()
{ ? ?p=(int*)malloc(sizeof(int));
f(p,a);
printf("% d\n",*p);
free(p);
}
f(int *s,int p[][3])
*s=p[1][1];)
A) 1
B) 4
C) 7
D) 5
38. 以下定義語句中正確的是( ? )。
A) int a=b=0;
B) char A=65+1,b='b';
C) float a=1,*b=&a,*c=&b;
D) double a=0.0;b=1.1;
39. 設有以下說明語句:
typedef struct
{ int n:
char ch[8];
} PER;
則下面敘述中正確的是()。
A)?PER是結構體變量名
B) PER是結構體類型名
C) typedef struct是結構體類型
D) struct是結構體類型名
40. 設有以下語句:
char x=3,y=6,z;
z=x^y<<2;
則z的二進制值是()。
A) 00010100
B) 00011011
C) 00011100
D) 00011000
填空題
1. 對于順序存儲的棧,因為棧的空間是有限的,在______運算時,可能發生棧的上溢。
2. 在最壞情況下,堆排序需要比較的次數為______。
3. 在深度為S的滿二叉樹中,葉子結點的個數為______。
4. 結構化程序設計方法的主要原則可以概括為自頂向下、逐步求精、______和限制使用goto語句。
5. 在數據庫管理系統提供的數據定義語言,數據操縱語言和數據控制語言中,______負責數據的模式定義與數據的物理存取構建。
6. ?若變量a、b已定義為int類型并賦值21和55,要求用printf函數以a=21,b=55的形式輸出,請寫出完整的輸出語句______。
7. 執行以下程序時輸入1234567<CR>,則輸出結果是______。
#include <stdio.h>
main()
{ ?int a=1,b;
scanf("%2d%2d",&a,&b);printf("%d%d\n",a,b);
}
8. ?閱讀下面語句,則程序的執行結果是______。
#include "stdio.h"
main()
{int a=-1,b=1,k;
if({++a<0)&&!(b--<=0))
printf("%d,%d\n",a,b);
else printf("%d,%d\n",b,a);}
9. 下面程序的功能是輸出數組s中最大元素的下標,請填空。
main()
{ int k,p,s[]={1,-9,7,2,-10,3):
for(p=0,k=p;p<6;p++)
if(s[p]>s[k])______
printf("%d\n",k);}
10. 以下程序的輸出結果是______。
void reverselint a[l,int n)
{ int i,1;
for(i=0;i<n/2;1++)
{ t=a[il;a[i]=a[n-1-i];a[n-1-i]=t;}
}
main[)
int b[10]={1,2,3,4,5,6,7,8,9,10};int i,s=0;
reverse(b,8);
for(1=6;i<10;i++)s+=b[i];
printf("% d\n");
}
11. 以下程序的輸出結果是______。
#include <stdio.h>
#include <string.h>
char *fun(char*t)
{char *p=t;
return (p+strlen(t)/2);
}
main()
{char *str="abcdefgh";
str=fun(str);
puts(str);
}
12. 以下函數rotate的功能是:將a所指N行N列的二維數組中的最后一行放到b所指二維數組的第0列中,把a所指二維數組中的第0行放到b所指二維數組的最后一列中,b所指二維數組中其他數據不變。
#define?N?4
void?rotade(int?a[][N],int?b[1[N])
{?int?i,j;
for(i=0;i<N;i++)
{?b[i][N-1]=??______?;?______?=a[N-1][i];}}
13. 下面程序的功能是:將字符數組a中下標值為偶數的元素從小到大排列,其他元素不變。請填空。
#include<stdio.h>
#include<string.h>
main()
{ char a[]="clanguage",t;
int i,j,k;
k=strlen(a);
for(i=0;i<=k-2;1+=2)
for(j=1+2;j<=k;j+=2)
if______
{t=a[i];a[i]=a[j];a[j]=t;]
puts(a);printf(")n");
}
14. ?以下程序的輸出結果是______。
#include <stdio. h>
main()
{ int a[5]={2,4,6,8,10},*p;
p=a:p++:
printf("%d",*p);
}
總結
以上是生活随笔為你收集整理的c语言题库325,2012年二级C语言笔试模拟325的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: IDEA Servlet页面报错
- 下一篇: step7db块寻址_step7 根据d