一、單項選擇題(本大題共20小題,每小題2分,共40分。在每小題給出的四個備選項中選出一個正確的答案,并將所選項前的字母填寫在答題紙的相應位置上。)
- 以下敘述中錯誤的是()
A.對于double類型數組,不可以直接用數組名對數組進行整體輸入或輸出
B.數組名代表的是數組所占存儲區的首地址,其值不可改變
C.當程序執行中,數組元素的下標超出所定義的下標范圍時,系統將給出“下標越界”的出錯信息
D.可以通過賦初值的方式確定數組元素的個數
2,在C程序中,若函數沒有返回值,則定義函數函數時需定義函數類型為
A. int
B. double
C. void
D. char
- 以下敘述不正確的是()
A.在C程序中,語句之間必須要用分號";"分隔
B.若a是實型變量,
C程序中a=10是正確的,因為實型變量中允許存放整型數C.在C程序中,無論是整數還是實數都能正確無誤地表示
D.在C程序中,%是只能用于整數運算的運算符
4·若有定義: intx;要將x強制轉換為雙精度型,應該寫成()
A. x(double)
B. x(double)
C. (double)x
D. double(x)
- 在 C語言中,引用數組元素時,其數組下標的數據類型允許是()
A. 整型常量
B.整型表達式
C. 整型常量或整型表達式
D.任何類型的表達式
6,若變量已正確定義,執行語句scanf("%d%d%d ",&kl,&k2,&k3);時,()是正確的輸入。
A. 2030,40
B. 2030 40
C. 20, 3040
D. 20,30,40
- 以下程序的輸出結果是()
#include <stdio.h>
void main()
{
int num;
for( num=0;num<=2;num++)
printf(“%d”,num);、
}
A. 1
B. 123
C. 012
D. 1234
- 設整型變量 n=10,i=4,則賦值運算 n%=i+1 執行后,n 的值是()
A. 33
B. 2
C.1
D. 0
9.已知:charc=‘A’;int i=1;j執行語句j=!c&&i++;,則i和j的值是()
A.1,1
B.1,0
C.2,1
D.2,0
10,設有如下定義: int(*ptr));則以下敘述中正確的是()
A. ptr是指向一維數組的指針變量
B. ptr是指向 int 型數據的指針變量
C. ptr 是指向函數的指針,該函數返回一個 int型數據
D. ptr是一個函數名,該函數的返回值是指向int型數據的指針
- 不合法的八進制數是()
A. 00
B. 028
C. 077
D. 01
- 以下函數說明正確的是()
A. int add(char x[][]);
B. int add(int x;int y);
C. char add( x,y);
D.float add(int x, int y);
13,以下選項中,不能作為合法常量的是()
A. 1.234e04
B. 1.234e0.4
C. 1.234e+4
D. 1.234e0
- 與語句"y=(x>0?1:x<0?-1:0);"功能相同的if語句是()
A. if (x> 0)y = 1;
else if (x <0)y =-1;
else y = 0;
B. if (x)
if (x> 0) y = 1;
else
if (x <0)y =-1;
else y= 0;
C. y=-1;
if (x)
if (x> 0)y =1;
else if (x=0)y=0;
else y=-1;
D. y=0;
if (x>=0)
if (x>0)y=1;
else y =-1;
15.已知字符b的ASCI碼為98 ,語句printf(“%d,%c”,"b’,‘b’+1);的輸出為()
A. 98,b
B. 98,c
C. 98, 99
D. 語句不合法
- 由C 語言源程序文件編譯而成的目標文件的缺省擴展名為()
A. cpp
B. exe
C. obj
D. C
- C 語言程序的基本模塊為()
A.表達式
B. 標識符
C. 語句
D. 函數
18,循環體至少被執行一次的語句為()循環語句
A. for
B. while
C. do-while
D. 任一種
19.x>0 ]y=5 的相反表達式為()
A. x<=0 || y!=5
B. x<=0 && y!=5
C. x>0|| y!=5
D. x>0 && y=5
- 在下面的字符數組定義中,)語句有語法錯誤()
A. char a[20]=“abcdefg”;
B. char a=“x+y=55,”;
C. char a[15]={‘1’,‘2’}:
D. char a[10]=‘5’;
二、程序閱讀題(本大題共5小題,每小題6分,共30分。請將程序的運行結果填寫在答題紙的相應位置上。
#include <stdio.h>#define N 5void main() {int i, p = 1, s = 0;printf("%5s%5s%5s\n", "i", "p", "s"); for (i = 1; i <= N; i++) {p *= i;s += i;printf("%5d%5d%5d\n", i, p, s);}
}
2_______
#include <stdio.h>void main() {int x = 24, y = 88;int i = 2, p = 1;do {while (x % i == 0 && y % i == 0) {p *= i;x /= i;y /= i;}i++;} while (x >= i && y >= i);printf("%d\n", p * x * y);
}
3______
#include <stdio.h>void main() {int a[12] = {76, 63, 54, 62, 40, 75, 80, 92, 77, 84, 44, 73};int b[4] = {60, 70, 90, 101};int c[4] = {0};int i, j;for (i = 0; i < 12; i++) {j = 0;while (a[i] >= b[j]) {j++;c[i]++;}}for (i = 0; i < 4; i++)printf("%d", c[i]);printf("\n");
}
4________
#include <stdio.h>void main() {int a = 10, b = 20;printf("%d %d\n", a, b);{int b = a + 25;printf("%d %d\n", a, b);a *= 4;printf("%d %d\n", a, b);}
}
5______
#include <stdio.h>int main() {int a[8] = {4, 8, 12, 16, 20, 24, 28, 32};int *p = a;do {printf("%d ", *p);p += 2;} while (p < a + 8);printf("\n");return 0;
}
三、程序填空題每空5分,共35分。請將答案填寫在答題紙的相應位置上。)
1程序功能用~,之間不同的3個數構成一個三位數,下面程序將統計出共有多少個這樣的數語填空。
#include stdio:h
void main()
{
int ij,k,count=0;
for(i=1;i<=9;i++)
for(j=① ?j<=9:j++)
if②_continue;
else for(k=0;k<=9;k++)
if(③{printf(“%d%d%d”,ij,k);count++;}
printf(“n%d”,count);
}
2.輸出1-100中除了能被5整除之外的所有數。且每行輸出4個數。#include <stdio.h>
void main
{
int ij=l;
for(i=1;i<=100;i++)
{
if(i%5-0)
①
printf(“%4d”,i)
;if②
printf(“n”);j+;
}
}
3,連續輸入一批學生的成績,直到輸入成績的數量超過50或者輸入成績不是有效成績(有效成績為0-100),將輸入的有效成績存入數組mark中,在數組中查找并輸出最高分。函數getmax(array,n):在有n個元素的一維數組array中找出并返回最大值。
#include <stdio.h>
#define MAXNUM 50
int getmax(int array,int n)
{
int k,max;
①
for(k=1;k<n;k++)
if(max<array[k]) max=array[k];
return max;
}
void main()
{
int k,x;
int mark[MAXNUM);
printf(“enter marks:”);
k=0;
scanf(“%d”,&x);
whlle(②){
mark[k++]=x;
scanf(“%d”,&x);
}
if(k>0) printf(“max=%dn”,getmax(mark,k));
else printf(“No marks!\n”);
}
四、編程題(本大題共3小題,每小題15分,共45分。請在答題紙的相應位置上作答。),編寫一個函數fun0,首先從鍵盤上輸入一個4行4列的一個實數矩陣到一個二維數組a[4][4]中,接著求出主對角線上元素之和,最后返回求和結果。
2.編程,將十進制數轉換成任意進制數。
3,編程,輸入10個整數存入數組a,再輸入一個整數x,在數組a中查找x,找到輸出x在10個數中的序號,找不到則輸出"no found"