2011年高級語言程序設計模擬試卷(五)
一、單項選擇題(本大題共20小題,每小題1分,共20分)在每小題列出的四個選項中只有一個選項是符合題目要求的,請將正確選項前的字母填在題后的括號內。
1. 設有下列數(shù)據(jù)定義語句,則表達式值是字母M的是()
struct P {char name[10]; int age;};
struct P c[3]={ {″John″ ,17},{″Paul″,19},{″Mary″,18}};
A. *c[3].name
B. c[3].*name
C. c[2].name[0]
D. c+2->name[0]
答案:C
2. 設 char c[5]{′a′,′b′,′c′,′0′}則 printf(″%s″,c);的輸出是()
A. ′a′ ′b′
B. ab
C. abc
D. ″ab\0c″
答案:C
3. 下面程序段的運行結果是()
char a[]=″language″,*p;
p=a;
while(*p!=′u′){printf(″%c″,*p-32);p++;}
A. LANGUAGE
B. language
C. LANG
D. langUAGE
答案:C
4. .執(zhí)行下面的程序段后,變量 k 中的值為()
int k=3,s[2];
s[0]=k;k=s[1]*10;
A. 不定值
B. 33
C. 30
D. 10
答案:A
5. 以下給出的各個函數(shù)的函數(shù)頭中,正確的是 ()
A. void f(int a,b)
B. int *f(int a,int b)
C. int f(int a;int b)
D. int f(int a,int b;)
答案:B
6. 設有下列數(shù)據(jù)定義語句,則能正確使用變量xyz1引用成員a的表達式是 ()
struct abc { char a; short b; float c[2]; } abc1;
struct xyz { int x;struct abc abc2; } xyz1;
A. xyz1.a
B. xyz1.abc1.a
C. xyz1.abc2.a
D. xyz1->abc2->a
答案:C
7. 設變量x為實型,不能正確表達數(shù)學公式xyz的表達式是 ()
A. x/y*z
B. x*(1/(y*z))
C. x/y*1/z
D. x/y/z
答案:A
8. 以下循環(huán)體的執(zhí)行次數(shù)是()
main()
{int i,j;
for(i=0,j=1;i<=j+1;i+=2,j--)printf(″%d\n″,i);
}
A. 3
B. 2
C. 1
D. 0
答案:C
9. 下列程序的運行結果是()
# include
main()
{int a=2,c=5;
printf(″a=%d,b=%d\n″,a,c);}
A. a=%2,b=%5
B. a=2,b=5
C. a=d,b=d
D. a=%d,b=%d
答案:B
10. 下列程序執(zhí)行后的輸出結果是()
void func(int *a,int b[])
{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
答案:A
11. 字符串“chen jing”在存儲單元中占幾個字節(jié)()
A. 8
B. 9
C. 10
D. 11
答案:C
12. 設有定義:char s[12]={″string″};,則printf(″%d\n″,strlen(s));的輸出是()
A. 6
B. 7
C. 11
D. 12
答案:A
13. 下列程序執(zhí)行后的輸出結果是()main( )
{ int x=′f′;printf(″% c\n″,′A′+(x-′a′+1));}
A. G
B. H
C. I
D. J
答案:A
解析:G
14. 設有定義語句“char s[3][20],(*p)[20]=s;”則下列語句中錯誤的是()
A. scanf(″%s″,s[2]);
B. gets(*(p+2));
C. scanf(″%s″,*(p+2+0));
D. gets(s[2][0]);
答案:D解析:gets(s[2][0]);
15. 已知:float x=1,y;則y=++x*++x的結果為()
A. y=9
B. y=6
C. y=1
D. 表達式是錯誤的
答案:B解析:y=6
16. 一個C語言程序是由()組成的。
A. 主程序
B. 子程序
C. 函數(shù)
D. 過程
答案:C解析:函數(shù)
17. 下列選項中,合法的用戶標識符是()
A. long
B. 45
C. ab
D. -sub
答案:C
18. 設有定義語句″int x[]={1,3,5,7,9,11,13},p=x;″,則不能正確引用數(shù)組x的合法元素的表達式是()
A. (p--)
B. (-- p)
C. p(++)
D. (++ p)
答案:B
解析:(-- p)
19. 不屬于C語言保留字的是()
A. break
B. else
C. If
D. while
答案:C解析:If
20. 設有定義語句()
struct
{ int a;float b;}d[3]={{1,4},{2,5},{6,7}};
則 printf(″%3.1f\n″,d[2].a);的輸出是
A. 2.5
B. 2.0
C. 8.0
D. 6.0
答案:D
解析:6.0
二、填空題(本大題共10小題,每小題2分,共20分)請在每小題的空格中填上正確答案。錯填,不填均無分。
1. C語言的執(zhí)行總是由___函數(shù)開始,并且在此函數(shù)中結束。
答案:主(或main)22.m%2
2. 使用 fopen(″abc″,″a+″)打開文件時,若 abc 文件不存在,則___。
答案:建立新文件
3. 設 int a=1,b=2,c=3,d;執(zhí)行d=!(a+b+c)后,d 的結果是___。
答案:0
4. 設有“char s[10]=″ABCDEF″,*p=s; p=″123″;”,則“s[3]”的值是字符___。 答案:D
5. 如果要將表達式(2*5.3)強制轉換成長整型,應該寫成____________
答案:long(2*53)
6. 對于變量x,其地址可以寫成;對于數(shù)組y[10],其首地址可以寫成或_________
答案:&xy&y[0]
7. 在C語言中的實型變量分為兩種類型,它們是_________和_________
答案:float型double型
8. 設有數(shù)據(jù)定義語句“char s1[10]=″123″,s2[]={″45678″};”,則表達式“strlen (strcpy(s1,s2))+strcmp(s1,s2)”的值是______答案:5
9. 已知字母a的ASCⅡ碼為十進制數(shù)97,且設ch為字符型變量,則表達式ch=′a′+′8′-′3′的值為______
10. 設有語句串“int x[4]={1,2,3},*p[2]; p[1]=x+1;”,則*p[1]的值是______答案:2
三、程序分析題(本大題共5小題,每小題5分,共25分)閱讀下列程序,將輸出結果寫到各題右側的空白處。
1. main()
{ struct
{ char *name; int age;
} p[]={″ZHAO″,19,″QIAN″,21,″SUN″,20};
int i,k=0;
for (i=1;i<3;i++)
if ((*(p+k)).age<(p+i)->age) k=i;
printf(″%s\n″,(p+k)->name);
}
輸出結果為?
答案:QIAN
2. main()
{static int a[][3]={9,7,5,3,1,2,4,6,8};
int i,j,s1=0,s2=0;
for(i=0;i<3,i++)
{if(i==j)s1=s1+a[i][j];
if(i+j==2)s2=s2+a[i][j];
}
printf(″%d\n,%d\n″,s1,s2);
}
輸出結果為?
答案:18
10
3. # include
main()
{int i,j;
for(i=4;i>1;i--)
{ printf(″*″);
for(j=1;j<4-i;j++)printf(″*″);
printf(″\n″);}
}
輸出結果為?
* *
* * *
* * * *
4. f(int a)
{ int b=0;
static int c=3;
a=c++,b++;
return(a);
}
main()
{ int a=2,i;
for (i=0;i<2;i++)
printf(″%d,″,f(a++));}
答案:3,4
5. main()
{
char ss[10]=″a program″;
int num=4;
sub(ss,0,num-1);sub(ss,num,6);sub(ss,0,6);
printf(″%s\n″,ss);
}
sub(ss,num1,num2)
char *ss;int num1,num2;
{
char t, * p;
p=ss+num2;ss=ss+num1;
while(ss
答案:ogra pram
四、程序填充題(本大題共3小題,每小題6分,共18分)給出下列程序,將橫線處缺少的部分補上,使其能正確運行。
1. 圖中空白處答案應為:___,___,___。
答案:float *max, float *min
*p
*max=*(p+i*6+j)
2. 圖中空白處答案應為:___,___,___。
答案:′\0′ ++ num
3. 下面程序輸出兩個字符串對應位置相等的字符。
# include ″stdio.h″
main( )
{ char a[___]=″programming″,b[___]=″fortran″;int i=0;
while(a[i]!=′___\0′&&)
if(a[i]==b[i])printf(″%c″,);
else;
}
答案:b[i]!=′\0′a[i++]i++
五、程序設計題(第1小題5分,第2、3小題各6分,共17分)
1. 用三種循環(huán)語句分別編寫程序顯示 1~100的平方值。
答案:# include
main()
{ int i;
for(i=1;i<=100;i++)printf(″%d″,i*i);printf(″\n″);i=1;while(i<=100){printf(″%d″,i*i);i++;}printf(″\n″);i=1;do{printf(″%d″,i*i);i++;}while(i<=100);
}
更多試卷請登陸九州考苑()
2. 編一個程序,輸入15個整數(shù)存入一維數(shù)組,按逆序重新存放后再輸出。答案:# include
main()
{ int a[15],*p=a,i,j;
for(i=0;i<15;i++,p++)
scanf(″%d″,p);
p--;
for(i=0;i<7;i++,p--){j=*p;*p=*(p-14+2*i);*(p-14+2*i)=j;}for(i=0;i<15;i++)
printf(″%d\n″,a[i]);
}
3. 編函數(shù),將短整數(shù)m轉換成字符串存入指針變量p指向的字符型數(shù)組。答案:void f(short m,char *p)
{ char s[5];
int k=4;
if (m<0) { *p=′-′; p++; m=-m; }
while (m!=0)
{ s[k]=′0′+m%10; k--; m=m/10; }
for (k++,k<5;k++,p++)*p=s[k];
*p=′\0′;
return;
}