C語言試題大全
引導語:c語言相關的試題都會考察什么內容呢?以下是小編整理的C語言試題大全,歡迎參考閱讀!
一、填空題(10分,第1小題4分,其余每空1分)
1.設有下列登記表,請采用最佳方式定義一種數據類型來表示這些數據的集合。
其中,配偶姓名用spouseName表示,子女人數用children表示。
2.C語言中構造數據類型包括 、 、 。
3.C語言中用_______表示邏輯值“假”,用________表示邏輯值“真”。
4.char*p[10];這條語句的含義是: 。
二、判斷下列問題描述正確與否,正確的打“√”,錯誤的打“×”。(4分,每題1分)
1.如果在程序中定義靜態變量和全局變量時,未明確指明其初始值,那么它們可以在程序編譯階段自動被初始化為0值。( )
2.在C語言中,可以用typedef定義一種新的數據類型。( )
3在C語言中,實參與其對應的形參各占獨立的存儲單元。( )
4.在C語言中,函數的定義可以嵌套。( )
三、選擇題:(10分,每題2分)
1.若用數組名作為函數調用時的實參,則實際上傳遞給形參的是( )。
A.數組的首地址
B.數組的第一個元素值
C.數組中全部元素的值
D.數組元素的個數
2.判斷兩個字符串s1和s2相等,應當使用( )。
A.if (s1 == s2)
B. if (s1 = s2)
C.if (!strcmp(s1,s2))
D. if (strcmp(s1,s2))
3.在while(x)語句中的x與下面條件表達式等價的是: 。
A. x!=0
B. x==1
C. x!=1
D. x==0
4.二維數組a有m行n列,則在a[i][j]之前的元素個數為( )。
A. j*n+i
B. i*n+j
C. i*n+j-1
D. i*n+j+1
5.設有聲明語句:int a=1,b=0;則執行以下語句后輸出為:。
switch (a)
{
case 1:
switch (b)
{
case 0:printf("**0**");
break;
case 1:printf("**1**");
break;
}
case2: printf("**2**");
break;
}
A.**0**
B.**0****2**
C.**0****1****2**
D.有語法錯誤
四、寫出下列程序的運行結果。(6分,每題2分)
1.
#include
void Fun(int *y)
{
printf("*y = %d ", *y);
*y = 20;
printf("*y = %d ", *y);
}
main()
{
int x = 10;
printf("x = %d ", x);
Fun(&x);
printf("x = %d ", x);
}
運行結果是:
2.
#include
int Fun(int x)
{
static int y = 0;
y += x;
return y;
}
main()
{
int x = 10, y = 0, k;
for(k=0; k<2; k++)
{
y = Fun(x);
printf("y = %d ", y);
}
}
運行結果是:
3.#include
main ( )
{
char a[] ="programming" , b[] = "language" ;
char *p1, *p2 ;
int i;
p1 = a;
p2 = b;
for (i=0; i<7; i++)
{
if (*(p1+i) ==*(p2+i))
printf("%c",*(p1+i)) ;
}
printf(" ");
}
運行結果是:
五、閱讀程序,在標有下劃線的空白處填入適當的表達式或語句,使程序完整并符合題目要求。(10分,每空2分)
1. 下面這個程序用于讀入5個整數,當程序讀入的數據為正整數時,則顯示該數,否則,不顯示。讀入5個數據后,程序結束運行。
#include
main()
{
int i, n;
for(i=1; i<=5; i++)
{
printf("Pleaseenter n:");
scanf("%d",&n);
if(n <= 0) _____________;
printf("n= %d ", n);
}
printf("Programis over! ");
}
2. 韓信點兵。韓信有一隊兵,他想知道有多少人,便讓士兵排隊報數:按從1至5報數,最末一個士兵報的數為1;按從1至6報數,最末一個士兵報的數為5;按從1至7報數,最末一個士兵報的數為4;最后再按從1至11報數,最末一個士兵報的數為10。下面程序的主要功能是計算韓信至少有多少兵。
#include
main()
{
intx = 1;
intfind = 0;
for (x=1; ________; x++)
{
if (x%5==1 && x%6==5&& x%7==4 && x%11==10)
{
printf(" x =%d ", x);
____________;
}
}
}
3. 下面程序是計算字符串中實際字符的個數,即實現和字符串處理函數strlen相同的功能。
unsigned int MyStrlen(char str[])
{
unsigned int len = 0, i;
for (i=0; str[i]!=; i++)
{
len;
}
return len;
}
六、在下面這個程序中,要求其實現的功能是對用戶輸入的任意整數計算其階乘,輸入小于等于-1的數時退出程序。下面給出的是一個有錯誤的程序,請找出其中的錯誤,并改正之。(10分)
#include
#define END-1;
long Factorial(int x);
main()
{
int x;
while(1);
{
printf("inputx:);
scanf("%d",x);
if(x <= END.
break
else
printf("%d!= %d ", x, Factorial(x));
}
}
long Factorial(int x)
{
int i;
int result;
for(i=1, i<=x, i++)
result*= i;
}
七、編程(40分,第1和2小題各10分,第3小題20分)
1.編程計算1!+2!+3!+……+10!的值。
2. 從鍵盤任意輸入10個不相同的整數,然后,輸入要查找的數x,如果在這10個數中找到x,則打印“Found!”;如果找不到,則打印“Not found!”。
3.從鍵盤任意輸入某班20個學生的成績,打印最高分,并統計不及格學生的人數。
【C語言試題】相關文章:
C語言試題01-23
C語言試題08-02
C語言試題04-26
C語言考點試題03-01
C語言練習試題07-01
C語言試題訓練08-07
C語言程序試題04-26
C語言試題及答案07-26
c語言經典筆試題05-24