《c語言考試題及答案》由會員分享,可在線閱讀,更多相關(guān)《c語言考試題及答案(93頁珍藏版)》請在裝配圖網(wǎng)上搜索。
1、一、選擇題
(1) 在C語言中,如果下面的變量都是int類型,則輸出的結(jié)果是
sum=pad=5; pad=sum + + ,pad + + , + + pad;
printf("%d\n",pad);
A) 7 B) 6 C) 5 D) 4
(2) 以下程序的輸出結(jié)果是
# include
main()
{ int i=010 , j = 10;
printf("%d,%d\n",+ +i , j - -); }
A) 11,10 B) 9,10 C) 010,9 D) 10,9
(3) 已知在ASCII代碼中,字母A的序號為65,以下程序的輸出的結(jié)
2、果是
# include
main()
{ char c1=A, c2=Y;
printf("%d,%d\n",c1,c2); }
A) 因輸出格式不合法,輸出錯誤信息 B)65,90 C)A,Y D)65,89
(4) 指針s所指字符串的長度為
char *s="\\"Name\\Address\n";
A) 19 B) 15 C) 18 D) 說明不合法
(5) 設(shè)有說明int(*ptr)[m];其中的標識符ptr是
A)M個指向整型變量的指針
B)指向M個整型變量的函數(shù)指針
C)一個指向具有M個整型元素的一維數(shù)組的指針
D)具有M個指針元素
3、的一維指針數(shù)組,每個元素都只能指向整型量
(6) 語句while(!E);中的條件!E等價于
A)E = = 0 B)E!=1 C)E!=0 D)~E
(7) 以下程序的輸出結(jié)果是
# include
main()
{ printf("%d\n",NULL); }
A) 不確定的(因變量無定義) B)0 C)-1 D)1
(8) 以下函數(shù)調(diào)用語句中含有的實參個數(shù)為。
func((exp1,exp2),(exp3,exp4,exp5));
A) 1 B) 2 C) 4 D) 5
(9) 設(shè)有以下語句:
char a=3,b=6,c;
c=a^b<<2
4、;
則c的二進制值是
A) 00011011 B)00010100 C)00011100 D)00011000
(10) 下面的程序中第幾行有錯誤(每行程序前面的數(shù)字是行號)。
1 #include
2 main()
3 {
4 float a[3]={0,0};
5 int i;
6 for(i=0;i<3;i + + ) scanf("%d",&a[i]);
7 for(i=1;i<3;i + + ) a[0]=a[0]+a[i];
8 printf("%f\n",a[0]);
9 }
A) 沒有 B)第4行 C)第6行 D)第8行
(11)
5、 設(shè)有語句int a=3;則執(zhí)行了語句a+=a-=a*a;后,變量a的值是
A)3 B)0 C)9 D)-12
(12) 以下的for循環(huán)
for(x=0,y=0; (y!=123)&&(x<4); x + + );
A) 是無限循環(huán) B)循環(huán)次數(shù)不定 C)執(zhí)行4次 D)執(zhí)行3次
(13) 設(shè)有語句char a=\72;則變量a
A)包含1個字符 B)包含2個字符 C)包含3個字符 D)說明不合法
(14) 以下程序的輸出結(jié)果是
# include
# include
main()
{ int a=1,b=4,c=2;
float
6、 x=10..5 , y=4.0 , z;
z=(a+b)/c+sqrt((double)y)*1.2/c+x;
pritnf("%f\n",z); }
A) 14.000000 B) 015.400000 C) 13.700000 D) 14.900000
(15) sizeof(double)是
A)一種函數(shù)調(diào)用 B)一個雙精度型表達式
C)一個整型表達式 D)一個不合法的表達式
(16) C語言中
A)不能使用do-while語句構(gòu)成的循環(huán)
B)do-while語句構(gòu)成的循環(huán)必須用break語句才能退出
C)do-while語句構(gòu)成的循環(huán),當while語句中的表達式
7、值為非零時結(jié)束循環(huán)
D)do-while語句構(gòu)成的循環(huán),當while語句中的表達式值為零時結(jié)束循環(huán)
(17) 以下程序的輸出結(jié)果是
# include
# include
main()
{ char str[12]={s,t,r,i,n,g};
printf("%d\n",strlen(str)); }
A) 6 B) 7 C) 11 D) 12
(18) 以下程序的輸出結(jié)果是
# include
main()
{ int a=2,c=5;
printf("a=%%d,b=%%d\n",a,c); }
A
8、) a=%2,b=%5 B) a=2,b=5 C) a=%%d,b=%%d D) a=%d,b=%d
(19) 以下程序的輸出結(jié)果是
# include
main()
{ int a ,b,d=241;
a=d/100%9;
b=(-1)&&(-1);
printf("%d,%d\n",a,b); }
A) 6,1 B) 2,1 C) 6,0 D) 2,0
(20) 以下程序的輸出結(jié)果是
# include
main()
{ int i;
for ( i=1;i<=5;i + + ) {if ( i%2 ) printf("*"
9、);
else continue; printf("#");}
printf("$\n"); }
A) *#*#*#$ B) #*#*#*$ C) *#*#$ D) #*#*$
(21) 以下for語句構(gòu)成的循環(huán)執(zhí)行了多少次
# include
# define N 2
# define M N+1
# define NUM (M+1)*M/2
main()
{ int i , n=0;
for ( i=1;i<=NUM;i + + );
{n + + ; printf("%d",n); }
printf("\n"); }
A) 5 B) 6 C
10、) 8 D) 9
(22) 設(shè)有以下語句,則不是對a數(shù)組元素的正確引用的選項是(其中0≤i<10)
int a[10]={0,1,2,3,4,5,6,7,8,9}, *p=a;
A) a[p-a] B) *(&a[i]) C) p[i] D) *(*(a+i))
(23) 有以下程序:
# include
# define N 6
main()
{ char c[N]; int i=0;
for ( ;i
11、
輸入以下三行,每行輸入都是在第一列上 開始,代表一個回車符:
a
b
cdef
程序的輸出結(jié)果是
A) abcdef B) a C) a D) a
b b b
c cd cdef
d
e
f
(24) 以下程序調(diào)用findmax函數(shù)求數(shù)組中值最大的元素在數(shù)組中的下標,請選擇填空。
# include
findmax ( s ,
12、 t , k )
int *s , t , *k;
{ int p; for(p=0,*k=p;p s[*k] )_________; }
main()
{ int a[10] , i , k ;
for ( i=0 ; i<10 ; i + + ) scanf("%d",&a[i]);
findmax ( a,10,&k );
printf ( "%d,%d\n" , k , a[k] ); }
A) k=p B) *k=p-s C) k=p-s D) *k=p
(25) 有以下程序:
#include
u
13、nion pw
{ int i; char ch[2]; } a;
main()
{ a.ch[0]=13; a.ch[1]=0; printf("%d\n",a.i); }
程序的輸出結(jié)果是(注意: ch[0]在低字節(jié),ch[1]在高字節(jié)。)
A) 13 B) 14 C) 208 D) 209
(26) 有以下程序:
# include
main()
{ int c;
while((c=getchar())!=\n)
{ switch(c-2)
{ case 0:
case 1: putchar(c+4);
case 2: putchar(c+4
14、);break;
case 3: putchar(c+3);
case 4: putchar(c+2);break; } }
printf("\n"); }
從第一列開始輸入以下數(shù)據(jù),代表一個回車符。
2743
程序的輸出結(jié)果是
A) 668977 B) 668966 C) 6677877 D) 6688766
(27) 以下程序的輸出結(jié)果為
main()
{ char *alpha[6]={"ABCD","IJKL","MNOP","QRST","UVWX"};
char **p; int i;
p=alpha;
for(i=0;i<4;i + +
15、) printf("%s",p[i]); printf("\n"); }
A) ABCDEFGHIJKL B) ABCD C) ABCDEFGHIJKLMNOP D) AEIM
(28) 以下程序的輸出結(jié)果是
# include
# define FUDGE(y) 2.84+y
# define PR(a) printf("%d",(int)(a))
# define PRINT1(a) PR(a);putchar(\n)
main()
{int x=2; PRINT1(FUDGE(5)*x); }
A) 11 B) 12 C) 13 D) 15
(29)
16、 以下程序的輸出結(jié)果是
# include
main()
{ int i=1,j=3;
printf("%d",i + + );
{ int i=0; i+=j*2; printf("%d,%d",i,j); }
printf("%d,%d\n",i,j); }
A) 1,6,3,1,3 B) 1,6,3,2,3 C) 1,6,3,6,3 D) 1,7,3,2,3
(30) 以下程序的輸出結(jié)果是
# include
main()
{ int k=4,m=1,p;
p=func(k,m); printf("%d,",p); p=fun
17、c(k,m); printf("%d\n",p);}
func(a,b)
int a,b;
{ static int m=0,i=2;
i+=m+1; m=i+a+b; return(m); }
A) 8,17 B) 8,16 C) 8,20 D) 8,8
(31) 設(shè)有以下語句:
char str[4][12]={"aaa","bbbb","ccccc","dddddd"},
*strp[4];
int i;
for(i=0;i<4;i + + )strp[i]=str[i];
不是對字符串的正確引用的選項是(其中0≤k<4)
A) strp B) str[k] C
18、) strp[k] D) *strp
(32) 設(shè)有以下語句:
char str1[]="string",str2[8],*str3,*str4="string";
則不是對庫函數(shù)strcpy的正確調(diào)用的選項是(庫函數(shù)用于復(fù)制字符串)
A) strcpy(str1,"HELLO1"); B) strcpy(str2,"HELLO2");
C) strcpy(str3,"HELLO3"); D) strcpy(str4,"HELLO4");
(33) C語言中形參的缺省存儲類別是
A)自動(auto) B)靜態(tài)(static) C)寄存器(register) D)外部(exte
19、rn)
(34) 設(shè)有以下語句:
struct st {int n; struct st *next;};
static struct st a[3]={5,&a[1],7,&a[2],9,\0},*p;
p=&a[0];
則下列哪一個表達式的值是6
A)p + + ->n B) p->n + + C) (*p).n + + D) + + p->n
(35) 以下四個程序中,哪一個不能對兩個整型變量的值進行交換
A)# include
main()
{ int a=10,b=20; swap(&a,&b);
printf("%d %d\n",a,b)
20、;
}
swap(p,q)
int *p,*q;
{
int *t;
t=(int )malloc(sizeof(int));
t=p;*p=*q;*q=*t; }
B) # include
main()
{
int a=10,b=20;
swap(&a,&b);
printf("%d %d\n",a,b);
}
swap(p,q)
int p,q;
{
int *t;
t=*p;*p=*q;*q=t;
}
C) # include
main()
{
int *a,*b;
*a=10,*
21、b=20;
swap(a,b);
printf("%d %d\n",*a,*b);
}
swap(p,q)
int *p,*q;
{
int t;
t=*p;*p=*q;*q=t;
}
D) # include
main()
{
int a=10,b=20;
int x=&a,y=&b;
swap(x,y);
printf("%d %d\n",a,b);
}
swap(p,q)
int *p,*q;
{
int t;
t=*p;*p=*q;*q=t;
}
二、填空題
(1) 以下C語言程序?qū)⒋疟P中的一個文件復(fù)制到另一個
22、文件中,兩個文件名在命令行中給出。
#include
main(argc,argv)
int argc; char *argv[];
{ FILE *f1,*f2; char ch;
if(argc< 【1】 )
{ printf("Parameters missing!\n"); exit(0); }
if( ((f1=fopen(argv[1],"r")) = = NULL)||((f2=fopen(argv[2],"w")) = = NULL))
{ printf("Can not open file!\n"); exit(0);}
while( 【
23、2】 )fputc(fgetc(f1),f2);
fclose(f1); fclose(f2); }
(12) 以下程序中的trap函數(shù)是一個用梯形法求定積分的通用函數(shù)。梯形法求定積分的公式為:
n-1 a-b
s=((f(a)+f(b))/2+∑ f(a+i*h))*h , h=|----|
i=1 n
其中,n為積分小區(qū)間數(shù)。以下程序調(diào)用trap函數(shù)求定積分,被積函數(shù)是:
f(x)=x*x+3*x+2,且n=1000,a=0,b=4。
#include
3include
double trap(fun,a,b)
double (*
24、fun)(),a,b;
{ double t,h;
int i,n=1000;
t=0.5*((*fun)(a)+(*fun)(b)); h=fabs(a-b)/(double)(n);
for(i=1;i<=n-1;i + + ) t=t+ 【3】 ;
t=t*h; return(t); }
double mypoly(x)
double x;
{ return(x*x+3.0*x+2.0); }
main()
{ double y,(*pf)(); pf= 【4】 ;
y=trap(pf,0.0,4.0); printf("%f\n",y); }
(13) 以下程序
25、求a數(shù)組中的所有素數(shù)的和,函數(shù)isprime用來判斷自變量是否為素數(shù)。素數(shù)是只能被1和本身整除且大于1的自然數(shù)。
#include
main()
{ int i,a[10],*p=a,sum=0;
printf("Enter 10 num:\n");
for(i=0;i<10;i + + ) scanf("%d",&a[i]);
for(i=0;i<10;i + + )
if(isprime(*(p+ 【5】 )) = = 1){ printf("%d",*(a+i)); sum+=*(a+i); }
printf("\nThe sum=%d\n",sum)
26、; }
isprime(x)
int x;
{ int i; for(i=2;i<=x/2;i + + )
if(x%i = = 0) return (0); 【6】 ; }
(14) 以下程序調(diào)用invert函數(shù)按逆序重新放置a數(shù)組中元素的值。a數(shù)組中的值在main函數(shù)中讀入。
#include
#define N 10
invert(s,i,j)
int *s,i,j;
{ int t; if(i
27、N],i;
for(i=0;inext = = NULL).
#include
struct list { int data;struct list *next;};
【9】 creatli
28、st()
{ struct list *p,*q,*ph; int a;
ph=(struct list *) malloc(sizeof(struct list));
p=q=ph; printf("Input an integer number,enter -1 to end:\n");
scanf("%d",&a):
while(a!=-1)
{ p=(struct list *)malloc(sizeof(struct list));
p->data=a; q->next=p; 【10】 =p; scanf("%d",&a); }
p->next=\0; return(
29、ph); }
main()
{ struct list *head; head=creatlist();}
參考答案
選擇題:
(1)C (2)B (3)D (4)B (5)C (6)A (7)B (8)B (9)A (10)C
(11)D (12)C (13)A (14)C (15)C (16)D (17)A (18)D (19)B (20)A
(21)C (22)D (23)C (24)D (25)A (26)A (27)C (28)B (29)B (30)A
(31)A (32)C (33)A (34)D (35)C
填空題:
(1)3
(2)!feof(
30、f1)或feof(f1)==0
(3)(*fun)(a+i*h)
(4) mypoly
(5)I
(6)return 1 或 return (1)
(7)i+1
(8) I
(9) struct list *
(10) q
一、選擇題
(1) 請選出可用作C語言用戶標識符的一組標識符
A) void B) a3_b3 C) For D) 2a
define _123 -abc DO
WORD IF Case sizeof
(2) 設(shè) int a=12,則執(zhí)行完語句 a+=a-=a*a后,a的值是
A) 552 B) 264 C) 144 D) -264
(3)
31、C語言程序的基本單位是
A) 程序行 B) 語句 C) 函數(shù) D) 字符
(4) 請選出合法的C語言賦值語句
A) a=b=58 B) i++; C) a=58,b=58 D) k=int(a+b);
(5) 執(zhí)行下面程序片段的結(jié)果是
int x=23;
do
{ printf("%2d",x--);}
while(!x);
A) 打印出321 B) 打印出23 C) 不打印任何內(nèi)容 D) 陷入死循環(huán)
(6) 請選出以下語句的輸出結(jié)果
printf("%d\n",strlen("\t\"\065\xff\n"));
A) 5 B) 14 C) 8 D) 輸出項不合法,無
32、正常輸出
(7) 設(shè)有如下的函數(shù)
ggg(x)
float x;
{ printf("\n%d",x*x);}
則函數(shù)的類型
A) 與參數(shù)x的類型相同 B) 是void C) 是int D) 無法確定
(8) 設(shè)有如下枚舉類型定義:
enum language { Basic=3,Assembly,Ada=100,COBOL,Fortran};
枚舉量Fortran的值為
A) 4 B) 7 C) 102 D) 103
(9) 若有以下說明和語句,請選出哪個是對c數(shù)組元素的正確引用
int c[4][5], (*cp)[5];
cp=c;
A) cp+1 B) *(
33、cp+3) C) *(cp+1)+3 D) *(*cp+2)
(10) 標準函數(shù) fgets(s, n, f) 的功能是
A) 從文件f中讀取長度為n的字符串存入指針s所指的內(nèi)存
B) 從文件f中讀取長度不超過n-1的字符串存入指針s所指的內(nèi)存
C) 從文件f中讀取n個字符串存入指針s所指的內(nèi)存
D) 從文件f中讀取長度為n-1的字符串存入指針s所指的內(nèi)存
(11) 設(shè)有如下一段程序:
int *var,ab;
ab=100
var=&ab;
ab=*var+10;
執(zhí)行上面的程序后,ab的值為
A) 120 B) 110 C) 100 D) 90
(12) 以下程序
34、段給數(shù)組所有的元素輸入數(shù)據(jù),請選擇正確答案填入。
#include
main()
{ int a[10],i=0;
while(i<10) scanf("%d",________ );
┇
}
A) a+(i++) B) &a[i+1] C) a+i D) &a[++i]
(13) 設(shè)有如下的程序段:
char str[ ]="Hello";
char *ptr;
ptr=str;
執(zhí)行上面的程序段后,*(ptr+5)的值為
A) o B) \0 C) 不確定的值 D) o的地址
(14) 在宏定義 #define PI 3.14159中,用宏名P
35、I代替一個
A) 單精度數(shù) B) 雙精度數(shù) C) 常量 D) 字符串
(15) 字符(char)型數(shù)據(jù)在微機內(nèi)存中的存儲形式是
A) 反碼 B) 補碼 C) EBCDIC碼 D) ASCII碼
(16) 執(zhí)行下面的程序段
int x=35;
char z=A;
int b;
B=((x&15)&&(z
36、接遞歸調(diào)用
(18) 假設(shè)在程序中a,b,c均被定義成整型,并且已賦大于1的值,則下列能正確表示代數(shù)式 的表達式是
A) 1/a*b*c B) 1/(a*b*c) C) 1/a/b/(float)c D) 1.0/a/b/c
(19) 若x是整型變量,pb是基類型為整型的指針變量,則正確的賦值表達式是
A) pb=&x B) pb=x; C) *pb=&x; D) *pb=*x
(20) 設(shè)有
static char str[ ]="Beijing";
則執(zhí)行
printf("%d\n", strlen(strcpy(str,"China")));
后的輸出結(jié)果為
A) 5
37、 B) 7 C) 12 D) 14
(21) 設(shè)有如下程序:
#include
main()
{ int **k, *j, i=100;
j=&i; k=&j;
printf("%d\n", **k);
}
上面程序的輸出結(jié)果是
A) 運行錯誤 B) 100 C) i的地址 D) j的地址
(22) 設(shè) a=5, b=6, c=7, d=8, m=2, n=2, 執(zhí)行
(m=a>b)&&(n=c>d)
后n的值為
A) 1 B) 2 C) 3 D) 4
(23) 下面函數(shù)的功能是
sss(s, t)
char *s, *t;
{ while
38、((*s)&&(*t)&&(*t++== *s++));
return(*s-*t);
}
A) 求字符串的長度 B) 比較兩個字符串的大小
C) 將字符串s復(fù)制到字符串t中 D) 將字符串s接續(xù)到字符串t中
(24) 請選出以下程序的輸出結(jié)果
#include
sub(x,y,z)
int x, y, *z;
{ *z=y-x; }
main()
{ int a, b, c;
sub(10,5,&a); sub(7,a,&b); sub(a,b,&c);
printf("%d,%d,%d\n", a,b,c);
}
A) 5,2,3 B) -5
39、,-12,-7 C) -5,-12,-17 D) 5,-2,-7
(25) 下面程序的輸出結(jié)果是
#include
main()
{ int i=2,p;
p=f(i,i+1);
printf("%d",p);
}
int f(a,b)
int a,b;
{ int c;
if(a>b) c=1;
else
if(a==b) c=0;
else c=-1;
return(c);
}
A) -1 B) 0 C) 1 D) 2
(26) 請選出以下程序段的輸出結(jié)果
#include
#define MIN(x,y) (x)
40、<(y)? (x):(y)
main()
{ int i,j,k;
i=10; j=15;
k=10*MIN(i,j);
printf("%d\n",k);
}
A) 15 B) 100 C) 10 D) 150
(27) 請選出以下程序段的輸出結(jié)果
#include
main()
{ char sl[10], s2[10], s3[10], s4[10];
scanf("%s%s",s1,s2); gets(s3); gets(s4);
puts(s1); puts(s2); puts(s3); puts(s4);
}
輸入數(shù)據(jù)如下:(此處
41、R>代表回車符)
aaaa bbbb
cccc dddd
A) aaaa B) aaaa C) aaaa D) aaaa bbbb
bbbb bbbb bbbb cccc
cccc cccc dddd dddd
cccc dddd dddd eeee
(28) 請選出以下程序的輸出結(jié)果
#include
fun(s, n1, n2)
int *s, n1, n2;
{ int i, j, t;
i=n1; j=n2;
while(i
42、)= *(s+j); *(s+j)=t;
i++; j--;
}
}
main()
{ int a[10]={1,2,3,4,5,6,7,8,9,0},i, *p=a;
fun(p,0,3); fun(p,4,9); fun(p,0,9);
for(i=0; i<10; i++) printf("%d", *(a+i));
printf("\n");
}
A) 0 9 8 7 6 5 4 3 2 1 B) 4 3 2 1 0 9 8 7 6 5
C) 5 6 7 8 9 0 1 2 3 4 D) 0 9 8 7 6 5 1 2 3 4
(29) 請選出以下程序的輸出結(jié)果
43、
#include
main()
{ int a[ ]={ 1,2,3,4 },i;
int x=0;
for(i=0; i<4; i++)
{ sub(a,x); printf("%d",x);}
printf("\n");
}
sub(s,y)
int *s, y;
{ static int t=3;
y=s[t]; t--;
}
A) 1 2 3 4 B) 4 3 2 1 C) 0 0 0 0 D) 4 4 4 4
(30) 下面程序的輸出結(jié)果為
struct st
{ int x;
int *y;
} *p;
int dt[4]
44、={10,20,30,40};
struct st aa[4]={ 50,&dt[0],60,&dt[1],
70,&dt[2],80,&dt[3] };
main()
{ p=aa;
printf("%d\n", ++p->x );
printf("%d\n", (++p)->x);
printf("%d\n", ++( *p->y));
}
A) 10 B) 50 C) 51 D) 60
20 60 60 70
20 21 21 31
二、填空題
(1) 設(shè)有如下程序段:
int i
45、=0, sum=1;
do
{ sum+=i++;}
while(i<6);
printf("%d\n", sum);
上述程序段的輸出結(jié)果是 【1】 。
(2) 閱讀下列程序:
#include
main()
{ int i, j, row, column,m;
static int array[3][3]={{100,200,300},
{28,72,-30},
{-850,2,6}
};
m=array[0][0];
for (i=0; i<3; i++)
for (j=0; j<3; i++)
if (array[i][j]
46、{ m=array[i][j]; row=i; column=j;}
printf("%d,%d,%d\n",m,row,column);
}
上述程序的輸出結(jié)果是 【2】 。
(3) 設(shè)a、b、c為整型數(shù), 且a=2、b=3、c=4, 則執(zhí)行完以下語句:
a*=16+(b++)-(++c);
后,a的值是 【3】 。
(4) 下面程序的輸出結(jié)果是 【4】 。
#include
main()
{ int a=3, b=2, c=1;
c-=++b;
b*=a+c;
{ int b=5, c=12;
c/=b*2;
a-=c;
printf( %
47、d,%d,%d,",a,b,c);
a+=--c;
}
printf( %d,%d,%d,",a,b,c);
}
(5) 設(shè)有如下程序:
#include
main(argc,argv)
int argc; char *argv[ ];
{ while( --argc>0) printf("%s",argv[argc]);
printf("\n");
}
假定上述程序經(jīng)編譯和連接后生成可執(zhí)行文件PROG.EXE,如果在DOS提示符下鍵入PROG ABCD EFGH IJKL ,則輸出結(jié)果為 【5】 。
(6) 閱讀下列程序:
#includ
48、e
#define MAX_COUNT 4
void fun();
main()
{ int count;
for (count=1; count<=MAX_COUNT; count++) fun();
}
void fun()
{ static int i;
i+=2; printf("%d",i);
}
上述程序的輸出結(jié)果是 【6】 。
(7) 設(shè)有下列程序:
#include
#include
main()
{ int i;
char str[10], temp[10];
gets(temp);
49、
for (i=0; i<4; i++)
{ gets(str);
if (strcmp(temp,str)<0) strcpy(temp,str);
}
printf("%s\n",temp);
}
上述程序運行后,如果從鍵盤上輸入(在此代表回車符):
C++
BASIC
QuickC
Ada
Pascal
則程序的輸出結(jié)果是 【7】 。
(8) 設(shè)有如下程序:
#include
main(argc,argv)
int argc; char *argv[ ];
{ FILE *fp;
vo
50、id fc();
int i=1;
while( --argc>0)
if((fp=fopen(argv[i++],"r"))==NULL)
{ printf("Cannot open file! \n");
exit(1);
}
else
{ fc(fp); fclose(fp); }
}
void fc(ifp)
FILE *ifp;
{ char c;
while((c=getc(ifp))!=#) putchar(c-32);
}
上述程序經(jīng)編譯、連接后生成可執(zhí)行文件名為cpy.exe。假定磁盤上有三個
文本文件,其文件名和內(nèi)容分別為:
文件名 內(nèi)容
51、
a aaaa#
b bbbb#
c cccc#
如果在DOS下鍵入
cpy a b c
則程序輸出 【8】 。
(9) 若輸入3個整數(shù)3,2,1,則下面程序的輸出結(jié)果是【9】 。
#include
void sub( n,uu)
int n, uu[ ];
{ int t;
t=uu[n--]; t+=3*uu[n];
n=n++;
if(t>=10)
{ uu[n++]=t/10; uu[n]=t%10;}
else uu[n]=t;
}
main( )
{ int i, n, aa[10]={0,0,0,0,0,0}
sca
52、nf( "%d%d%d",&n,&aa[0],&aa[1]);
for(i=1; i
#include
main( )
{ int num[26],i; cha
53、r c;
for(i=0; i<26; i++) num[i]=0;
while( 【12】 !=#) /*統(tǒng)計從終端輸入的大寫字母個數(shù)*/
if( isupper(c)) num[c-65]+=1;
for(i=0; i<26; i++) /*輸出大寫字母和該字母的個數(shù)*/
if(num[i]) printf("%c:%d\n,i 【13】 , num[i]);
}
(12) 下面的程序調(diào)用getone函數(shù)開辟一個動態(tài)存儲單元,調(diào)用assone函數(shù)把數(shù)據(jù)輸入此動態(tài)存儲單元,調(diào)用outone函數(shù)輸出此動態(tài)存儲單元中的數(shù)據(jù)。請?zhí)羁铡?
#include
get
54、one(s)
int **s;
{ *s=(int *)malloc(sizeof(int));}
assone(a)
int *a;
{ scanf("%d", 【14】 );}
outone(b)
int *b;
printf("%d\n", 【15】 );}
main( )
{ int *p;
getone(&p);
assone(p);
outone(p);
}
選擇題:
(1)B (2)D (3)C (4)B (5)B (6)A (7)C (8)C (9)D (10)B
(11)B (12)A (13)B (14)D (15)D (16)
55、B (17)A (18)D (19)A (20)A
(21)B (22)B (23)B (24)B (25)A (26)A (27)A (28)C (29)C (30)C
填空題:
(1) 16
(2) -850,2,0若遺漏逗號扣1分
(3) 28
(4) 2,5,1,2,3,-2若遺漏逗號扣1分
(5) IJKLEFGHABCD 若在字符間嵌入空格扣1分 若在字符間嵌入空格扣1分
(6)2468
(7) QuickC 若大寫字母寫成小寫字母,或小寫字母寫成大寫字母扣1分
(8) AAAABBBBCCCC 若在字符間嵌入空格扣1分若用小寫字母扣1分
(9) 2 7
56、 2 1 或2721
(10) 9
(11) 0
(12) (c=getchar()) 注意,外層括號不得遺漏
(13) +65 或 +A
(14) a 或&*a
(15) *b
一、選擇題
(1) 下列敘述中正確的是
A) C語言編譯時不檢查語法
B) C語言的子程序有過程和函數(shù)兩種
C) C語言的函數(shù)可以嵌套定義
D) C語言所有函數(shù)都是外部函數(shù)
(2) 以下所列的C語言常量中,錯誤的是
A) 0xFF B) 1.2e0.5 C) 2L D) \72
(3) 下列選項中,合法的C語言關(guān)鍵字是
A) VAR B) cher C) integer D) def
57、ault
(4) 以下變量x.、y、z均為double類型且已正確賦值,不能正確表示數(shù)學式子 的C語言表達式是
A) x/y*z B) x*(1/(y*z)) C) x/y*1/z D) x/y/z
(5) 若a為int類型,且其值為3,則執(zhí)行完表達式a+=a-=a*a后,a的值是
A) -3 B) 9 C) -12 D) 6
(6) 設(shè)x、y、t均為int型變量,則執(zhí)行語句:x=y=3;t=++x||++y;后,y的值為
A) 不定值 B) 4 C) 3 D) 1
(7) 若變量已正確說明為float類型,要通過語句scanf("%f %f %f ",&a,&b,&c);給a賦
58、于10.0,b賦予22.0,c賦予33.0,不正確的輸入形式是:
A) 10<回車> B) 10.0,22.0,33.0<回車>
22<回車>
33<回車>
C) 10.0<回車> D) 10 22<回車>
22.0 33.0<回車> 33<回車>
(8) 若執(zhí)行以下程序時從鍵盤上輸入9,則輸出結(jié)果是
A) 11 B) 10 C) 9 D) 8
Main0
{ int n;
scanf("%d",&n);
if(n++<10) printf("%d\n",n);
else printf("%d\n",n--);
}
(9) 若a、 b、c1、c2、x、y、均是整型變
59、量,正確的switch語句是
A) swich(a+b); B) switch(a*a+b*b)
{ case 1:y=a+b; break; {case 3:
case 0:y=a-b; break; case 1:y=a+b;break;
} case 3:y=b-a,break;
}
C) switch a D) switch(a-b)
{ case c1 :y=a-b; break {default:y=a*b;break
case c2: x=a*d; break case 3:case 4:x=a+b;break
default:x=a+b; case 10:
60、case 11:y=a-b;break;
} }
(10) 有以下程序段
int k=0
while(k=1)k++;
while 循環(huán)執(zhí)行的次數(shù)是
A) 無限次 B) 有語法錯,不能執(zhí)行
C) 一次也不執(zhí)行 D) 執(zhí)行1次
(11) 以下程序執(zhí)行后sum的值是
A)15 B)14 C) 不確定 D)0
min()
{ int i , sum;
for(i=1;i<6;i++) sum+=i;
printf("%d\n",sum);
}
(12) 有以下程序段
int x=3
do
{ printf("%d",x-=2); }
while (!(--x))
61、;
其輸出結(jié)果是
A) 1 B) 3 0 C) 1 -2 D) 死循環(huán)
(13) 若變量c為char類型,能正確判斷出c為小寫字母的表達式是
A) a<=c<= z B) (c>= a)||(c<= z)
C) (a<=c)and (z>=c) D) (c>= a)&&(c<= z)
(14) 以下所列的各函數(shù)首部中,正確的是
A) void play(var :Integer,var b:Integer)
B) void play(int a,b)
C) void play(int a,int b)
D) Sub play(a as integer,b as intege
62、r)
(15) 以下程序的輸出結(jié)果是
A) 0 B) 29 C) 31 D) 無定值
fun(int x, int y, int z)
{ z=x*x+y*y; }
main()
{ int a=31;
fun(5,2,a);
printf("%d",a);
}
(16) 下列程序段的輸出結(jié)果是
A) 2 1 4 3 B) 1 2 1 2 C) 1 2 3 4 D) 2 1 1 2
void fun(int *x, int *y)
{ printf("%d %d", *x, *y); *x=3; *y=4;}
main()
{ int x=1,y=2;
fun(
63、&y,&x);
printf("%d %d",x, y);
}
(17) 下列程序的輸出結(jié)果是
A) 非法 B)a[4]的地址 C)5 D)3
main()
{ char a[10]={9,8,7,6,5,4,3,2,1,0},*p=a+5;
printf("%d",*--p);
}
(18) 下列程序的運行結(jié)果是
A) 6 3 B) 3 6 C) 編譯出錯 D) 0 0
void fun(int *a, int *b)
{ int *k;
k=a; a=b; b=k;
}
main()
{ int a=3, b=6, *x=&a, *y=&b;
fun(x
64、,y);
printf("%d %d", a, b);
}
(19) 下面程序的輸出結(jié)果是
A) 0 B) 1 C) 10 D) 9
main()
{ int a[ ]={1,2,3,4,5,6,7,8,9,0,},*p;
p=a;
printf("%d\n",*p+9);
}
(20) 當調(diào)用函數(shù)時,實參是一個數(shù)組名,則向函數(shù)傳送的是
A) 數(shù)組的長度 B) 數(shù)組的首地址
C) 數(shù)組每一個元素的地址 D) 數(shù)組每個元素中的值
(21) 設(shè)有以下說明語句
struct ex
{ int x ; float y; char z ;} example;
則下面的敘述
65、中不正確的是
A) struct結(jié)構(gòu)體類型的關(guān)鍵字 B) example是結(jié)構(gòu)體類型名
C) x,y,z都是結(jié)構(gòu)體成員名 D) struct ex是結(jié)構(gòu)體類型
(22) 以下只有在使用時才為該類型變量分配內(nèi)存的存儲類說明是
A) auto和 static B) auto和 register
C) register和 static D) extern和 register
(23) 若fp是指向某文件的指針,且已讀到文件末尾,則庫函數(shù)feof(fp)的返回值是
A) EOF B) -1 C) 非零值 D) NULL
(24) 以下程序的輸出結(jié)果是
A) 20 B) 21 C) 2
66、2 D)23
main()
{ int i, k, a[10], p[3];
k=5;
for (i=0;i<10;i++) a[i ]=i;
for (i=0;i<3;i++) p[i ]=a[i *(i+1)];
for (i=0;i<3;i++) k+=p[i] *2;
printf("%d\n",k);
}
(25) 以下程序的輸出結(jié)果是
A) 1,5,9 B) 1,4,7 C) 3,5,7 D)3,6,9
main()
{ int i, x[3][3]={1,2,3,4,5,6,7,8,9};
for(i=0;i<3;i++) printf("%d,",x[i][2-i]);
}
(26) 以下程序的輸出結(jié)果是
A) 18 B) 19 C) 20 D)21
main()
{ int a[3][3]={ {1,2},{3,4},{5,6} },i,j,s=0;
for(i=1;i<3;i++)
for(j=0;