糯米文學吧

位置:首頁 > 計算機 > C語言

C語言自我檢測試題

C語言1.86W

引導語:檢測自己的C語言學習程度,做一下相關的練習題就見分曉了,以下是小編整理的C語言自我檢測試題,歡迎參考閲讀!

C語言自我檢測試題

一、填空題:(24分每空1.5分)

1.已知:int *p,a; 則語句 p=&a;中的運算符&的含義是( 1 )。

2.凡在函數體內沒有明顯存儲類別説明的變量是( 2 )。

3.已知:

struct

{ int k;

char c;

floata;}test;

則sizeof(test)的值是(3 )。

4.程序填空:

(1)下面的程序是main函數利用函數abcd來交換main中的兩個變量的值。

# include

main()

{floatx=10,y=20;

abcd( 4 );

printf("%f,%f",x,y);

}

abcd(x,y)

( 5 );

{

floattemp;

temp=( 6 );

( 7);

( 8);

}

(2)下面的程序是使用冒泡法對輸入的10個數據從小到大排序。排好序的10個數分兩行輸出。

#include

main()

{

( 9);

int j,k;

printf(" input 10 numbers please");

for(j=0;( 10 );j++)

scanf("%f",&a[j]);

printf("");

for(j=0;( 11 );j++)

for(k=0;( 12 );k++)

if( 13 )

{ x=a[k];

( 14 );

a[k+1]=x;

}

printf("The sorted 10 numbers:");

for(j=0;( 15 );j++)

{ if( 16 )

printf("");

printf("%f ",a[j]);

}

printf("");

}

二、單項選擇題:(20分每題2分)

1.C語言中基本數據類型包括( )。

A. 整型、實型、邏輯型

B. 整型、實型、字符型

C. 整型、字符型、邏輯型

D. 整型、實型、邏輯型、實型

2.已知int i,a;執行語句”i=(a=2*3,a*5),a+6;”後,變量a的值是()。

A.6

B.12

C. 30

D. 36

3.C語言中規定函數的返回值的類型是由()。

A. return語句中的表達式類型所決定

B. 調用該函數時的主調用函數類型所決定

C. 調用該函數時系統臨時決定

D. 在定義該函數時所指定的函數類型所決定

4.不能進行++和--運算的數據類型是()。

A. 指針

B. double

C. int

D. long

5.為了判斷兩個字符串s1和s2是否相等,應當使用( )。

(s1==s2)

B. if(s1=s2)

C. if(strcpy(s1,s2))

Dif (strcmp(s1,s2))

6.若有以下説明和語句:

struct stu

{

int no;

char *name;}student,*p=&student;

則以下引用方法不正確的是( )。

B. (*p)

C. p->no

D. student->no

7.以下不是死循環的語句為( )。

(; ; x+=k);

e(1){x++};

(k=10; ;k--)sum+=k;

(;(c=get))!=’’;)printf(“%c”,c);

8.以下錯誤的描述是( )。

A. 不同的.函數中可以使用相同的變量名

B. 形式參數是局部變量

C. 一個函數內部定義的變量只能在本函數範圍內有效

D. 在一個函數內部的複合語句中定義的變量可以在 本函數範圍內有效

9.若用數組名作為函數調用時實參,則實際上傳遞給形參的是()。

A.數組首地址

B. 數組的第一個元素值

C.數組中全部元素的值

D. 數組元素的個數

10.已知 int a,*p=&a; 則為了得到變量a的值,下列錯誤的表達式是()。

A.*&p

B.*p

C.p[0]

D.*&a

三、判斷下列問題描述及語句正確與否,正確的打“√”。(16分每題2分)

1.C的關鍵字都是小寫的。

2.一個複合語句是作為一個語句處理的且在邏輯上相互關聯的一組語句。

3.# definePI=3.14159

4.局部變量在進入代碼塊時生成,退出代碼塊時消失。

5.inta=123456;

6.函數可以嵌套定義,也可嵌套調用。

7. switch與if不同,switch只能測試是否相等,而if中還能測試關係和邏輯表達式。

8.break和continue語句都可用於選擇結構和循環結構中。

四、讀程序,寫出運行結果:(20分每題5分)

1.

main()

{ int a=5,b=4,x,y;

x=a++*a++*a++;

printf("a=%d,x=%d",a,x);

y=--b*--b*--b;

printf("b=%d,y=%d",b,y);

}

2.

#include

main()

{

struct s1

{char c[4],*s;}s1={"abc","def"};

struct s2

{char *cp;

struct s1ss1;}s2={"ghi",{"jkl","mno"}};

printf("%c%c",s1.c[0],*s1.s);

printf("%s%s",s1.c,s1.s);

printf("%s%s",,1.s);

printf("%s%s",++,++1.s);

}

3.

#include

func(int b[])

{ int j;

for(j=0;j<4;j++)

b[j]=j;

}

main()

{int a[4],k;

func(a);

for(k=0;k<4;k++)

printf("%d",a[k]);

}

4.

voidfun()

{ static int a=5;

a++;

printf("a=%d",a);

}

main()

{

int m;

for(m=0;m<=1;m++)

fun();

}

五、編程(20分)

1.有一個3*4的矩陣,找出最大值及該值所在位置。(10分)

2.寫一個函數,計算x的n次方。(10分)

標籤:試題 檢測 語言