c語言基礎試題及答案
一、選擇題
1、在C語言中,引用數組元素時,其數組下標的數據類型允許是 。
A、整型常量
B、整型表達式
C、整形常量或整形表達式
D、任何類型的表達式
2、以下對一維整型數組a的正確說明是____
A、int a(10) ;
B、int n=10,a[n];
C、int n;
scanf(“%d”,&n);
int a[n];
D、#define SIZE 10
int a[SIZE];
3、若有定義:int a[10],則對數組a元素的正確引用是
A、 a[10] B、a[3.5] C、a(5) D、a[10-10]
4、以下能對一維數組a進行正確初始化的語句是 。
A、int a[10]={0,0,0,0,0};
B、int a[10]={} ;
C、int a[ ] = {0} ;
D、int a[10]={10*1} ;
5、若有定義:int a[3][4],則對數組a元素的正確引用是________
A、a[2][4] B、a[1,3] C、a(5) D、a[10-10]
6、以下能對二維數組a進行正確初始化的.語句是_______
A、int a[2][]={{1,0,1},{5,2,3}} ;
B、int a[][3]={{1,2,3},{4,5,6}} ;
C、int a[2][4]={{1,2,3},{4,5},{6}} ;
D、int a[][3]={{1,0,1},{},{1,1}} ;
7、若有說明:int a[3][4]={0};則下面正確的敘述是_______
A、只有元素a[0][0]可得到初值0
B、此說明語句不正確
C、數組a中各元素都可得到初值,但其值不一定為0
D、數組a中每個元素均可得到初值0
8、下面是對s的初始化,其中不正確的是_____
A、char s[5]={“abc”};
B、char s[5]={‘a’,’b’,’c’,’d’,’e’,’ 0’};
C、char s[5]=” ”;
D、char s[5]=”abcdef”;
二、程序填空
1、以下程序把一個由小到大的有序數列放在a[1]到a[n]中,a[0]用作工作單元,程序把讀入的x值插入到a數組中,插入后,數組中的數仍然的序。請?zhí)羁眨晟瞥绦颉?/p>
#include
{int a[10]={0,12,17,20,25,28},x,i,n=5;
Printf(“enter a number”);
Scanf(“%d”,&x);
a[0]=x;i=n;
while(a[i]>x)
{a[____ (1)____ ]=a[i];
______(2)___________;
}
a[___(3)____]=x;n++;
for(i=1;i<=__(4)_______;i++)
printf(“M”,a[i]);
printf(“ ”);
}
三、編程題
1、用選擇法對10個整數排序(從小到大)
2、有一篇文章,共有3行文字,每行有80個字符。要求分別統計出其中英文大寫字母,小寫字母,中文字母,中文字符,數字,空格及其他字符的個數。(提示:中文字符是兩個字節(jié),且數值均大于128的字符)。
3、將一個數組中的值按逆序重新存放。例如:原來順序為8,6,5,4,1。要求改為1,4,5,6,8。
參考答案:
一、選擇題
1、A 2、D 3、A 4、A 5、A 6、B 7、D 8、A
二、程序填空
(1) i+1
(2) i=i-1
(3) ++i
(4) n
二、編程題
1、 main()
{int i,j,min,temp,a[11];
Printf(“enter data: ”);
For(i=1;i<=10;i++)
{printf(“a[%d=”,i);
Scanf(“%d”,&a[i]);
}
Printf(“ ”);
For(i=1;i<=10;i++)
Printf(“]”,a[i]);
Printf(“ ”);
For(i=1;i<=9;i++)
{min=i;
For(j=i+1;j<=10;j++)
If(a[min]>a[j]) min=j;
Temp=a[i];
a[i]=a[min];
a[min]=temp;
}
Printf(“ the sorted number: ”);
For(i=1;i<=10;i++)
Printf(“]”,a[i]);
}
2、 main()
{int i,j,upp,low,dig,spa,oth;
Char text[3][80];
Upp=low=dig=spa=oth=0;
For(i=0;i<3;i++)
{printf(“ please input line %d: ”,i++);
Gets(text[i]);
For(j=0;j<80&&text[i][j]!=’