C語言試題(精選)
引導語:C語言是眾多編程語言中的一種,以下是小編整理的C語言試題(精選),歡迎參考閱讀!
1.若有以下程序
#include
main()
{ int a=6, b=0, c=0;
for ( ;a; ) { b += a; a -= ++c; }
printf("%d,%d,%d", a,b,c);
}
則程序的輸出結果是
A) 1,14,3
B) 0,14,3
C) 0,18,3
D) 0,14,6
參考答案:B
【解析】本循環的條件判斷時只要a為0就退出循環體,初始值a的值為6,滿足條件執行完循環體,b的值為6,a-=+ +c即a=a-(++c),所以a的'值為5,c的值為1第二次循環后b的值為11,a的值為3,c的值為2第三次也是最后循環后,a的值為0,b的值14,c的值為3
2.以下選項中非法的C語言字符常量是
A) '07'
B) ''
C) 'aa'
D) 'xaa'
參考答案:C
【解析】C選項中是字符串常量,應該用雙引號表示即"aa"所以選擇C選項
3.若有以下程序
#include
void sp(int *a)
{ int b=2;
a=&b; *a = *a * 2; printf("%d,", *a);
}
main()
{ int k=3, *p=&k;
sp(p); printf("%d,%d", k, *p);
}
則程序的輸出結果是
A) 4,3,3
B) 4,3,4
C) 6,3,6
D) 6,6,6
參考答案:A
【解析】首先在主函數中給整型變量k賦值為3,將變量k的地址賦給指針變量p;調用sp函數,將實參p的值傳給形參a,在sp函數中,指針變量a又獲得變量b的地址,通過運算后,輸出a的值為4;返回主函數,輸出k的值和p的值為3和3。因此A選項正確。
4.若有以下程序
#include
int k=7;
void f(int **s)
{ int *t=&k;
*s=t;
printf("%d,%d,%d,", k, *t, **s);
}
main()
{ int i=3,*p=&i, **r = &p;
f(r); printf("%d,%d,%d", i, *p, **r);
}
則程序的輸出結果是
A) 3,3,3,7,7,7
B) 3,7,7,7,7,7
C) 7,7,7,3,3,3
D) 7,7,7,3,7,7
參考答案:D
5.若有以下程序
#include
int *f(int *s,int *t)
{ int *k;
if (*s < *t){ k = s; s=t; t=k; }
return s;
}
main()
{ int i=3, j=5, *p=&i, *q=&j, *r;
r=f(p,q); printf("%d,%d,%d,%d,%d", i, j, *p, *q, *r);
}
則程序的輸出結果是
A) 3,5,5,3,5
B) 3,5,3,5,5
C) 5,3,5,3,5
D) 5,3,3,5,5
參考答案:B
【解析】在主函數中分別給整型變量i、j和指針型變量p、q賦初值,并聲明指針變量r;調用f函數,并將實參變量p和q的值傳遞給形參變量s和t,并且f函數是指針型函數,即函數的返回值將是一個地址。在f函數中,如果條件成立,則將指針變量s和t互換,并且將指針s的地址返回主函數。最后輸出i, j, *p, *q, *r的值,即3,5,3,5,5。因此B選項正確。
6.若有以下程序
#include
#define N 4
void fun(int a[][N], int b[], int flag)
{ int i,j;
for(i=0; i<N; i++)
{ b[i] = a[i][0];
for(j=1; j<N; j++)
if (flag ? (b[i] > a[i][j]) : (b[i] < a[i][j]))
b[i] = a[i][j];
}
}
main( )
{ int x[N][N]={1, 2, 3, 4, 5, 6, 7, 8, 9,10,11,12,13,14,15,16}, y[N],i;
fun(x, y, 1);
for ( i=0; i<N; i++ ) printf("%d,", y[i]);
fun(x, y, 0);
for (i=0;i<N; i++) printf("%d,", y[i]);
printf("");
}
則程序的輸出結果是
A) 1,5,9,13,4,8,12,16,
B) 4,8,12,16,1,5,9,13,
C) 1,2,3,4,13,14,15,16,
D) 13,14,15,16,1,2,3,4,
參考答案:A
7.若有以下程序
#include
void fun(int a[ ], int n)
{ int t,i,j;
for (i=1; i<n; i+=2)
for (j=i+2; j<n; j+=2)
if (a[i] > a[j]) { t=a[i]; a[i]=a[j];a[j]=t;}
}
main()
{ int c[10]={10,9,8,7,6,5,4,3,2,1},i;
fun(c, 10);
for (i=0;i<10; i++) printf("%d,", c[i]);
printf("");
}
則程序的輸出結果是
A) 1,10,3,8,5,6,7,4,9,2,
B) 10,9,8,7,6,5,4,3,2,1,
C) 2,9,4,7,6,5,8,3,10,1,
D) 10,1,8,3,6,5,4,7,2,9,
參考答案:D
【解析】該題首先對一維數組進行初始化,c[0]到c[9]依次賦值為10到1;fun(c, 10);語句調用fun函數,fun函數的功能是將一維數組偶數位元素的數值由小到大排序;最后將排好序的新的一維數組進行輸出。因此D選項正確。
8.若有以下程序
#include
main()
{ int i,j=0;
char a[]="How are you!";
for (i=0; a[i]; i++)
if (a[i] != ' ') a[j++]=a[i];
a[j]='';
printf("%s",a);
}
則程序的輸出結果是
A) Hay!
B) Howareyou
C) Howareyou!
D) How are you!
參考答案:C
【解析】主函數中首先定義字符數組a[]="How are you!";執行for循環語句,語句if (a[i] != ' ') a[j++]=a[i];其功能是將字符數組中的空格去掉。因此C選項正確。
9.若有以下程序
#include
char *a="you";
char b[ ]="Welcome you to China!";
main()
{ int i, j=0; char *p;
for ( i=0; b[i] !=''; i++ )
{ if (*a == b[i])
{ p=a;
for (j=i; *p!=''; j++)
{ if (*p != b[j]) break;
p++;
}
if (*p=='') break;
}
}
printf("%s", &b[i]);
}
則程序的輸出結果是
A) China!
B) to China!
C) me you to China!
D) you to China!
參考答案:D
【解析】該程序首先定義*a和b[ ],并進行初始化。主函數中通過外層for循環語句,遍歷字符數組b[ ],并且將符合if條件語句的字符賦給數組p;for內層循環語句,遍歷字符數組a[ ]。再將符合if條件語句的結果輸出。因此D選項正確。
10.若有以下程序
#include
main()
{ char a[20], b[ ]="The sky is blue."; int i;
for (i=0; i<7; i++) scanf("%c", &b[i]);
gets(a); printf("%s%s", a,b);
}
執行時若輸入: (其中表示回車符)
Fig flower is red.
則輸出結果是
A) wer is red.Fig flo is blue.
B) wer is red.Fig flo
C) wer is red.The sky is blue.
D) Fig flower is red.The sky is blue.
參考答案:A
【C語言試題(精選)】相關文章:
C語言試題大全10-08
C語言試題訓練10-08
C語言精選面試題詳解09-30
標準c語言筆試題10-08
c語言經典筆試題10-08
C語言面試筆試題02-11
C語言練習測試試題10-08
c語言常見筆試題總結10-08
C語言自我檢測試題10-08
这里有更多你想看的
|
- 上一篇:信息技術教學總結三篇 信息技術教育教學總結
- 下一篇:返回列表