c語言基礎題庫及答案?單項選擇題 (本大題共20小題,每小題1分,共20分),我來為大家科普一下關于c語言基礎題庫及答案?以下内容希望對你有幫助!
單項選擇題 (本大題共20小題,每小題1分,共20分)
1. 下列說法正确的是( )
C程序可以從任何一個函數開始執行
main函數可以被其它函數調用
一個C程序隻能有一個main函數
main函數中不能有形參
2.下列屬于正确的标示符是( )
A. ?a B. a=2 C. a.3 D. a_3
3.下列數據中屬于“字符串常量”的是
A. ABC B. “ABC” C. ‘abc’ D. ‘a’
4.char型常量在内存中存放的是( )
A. ASCII代碼 B. BCD代碼 C. 内碼 D. 十進制代碼
5.設字符型變量a=3,b=6,計算表達式c=(a^b)<<2後c的二進制值是( )
A. 00011100 B.00000111 C. 00000001 D.00010100
6. 若有以下定義:char a;int b;float c; double d;則表達式a*b d-c的值的類型為( )
A. float B. int C. char D. double
7. 以下程序的輸出結果是a=5,b=4,則輸入數據的形式應該是( )
#include “stdio.h”
main()
{ int a,b;
scanf("%d,b=%d",&a,&b);
printf("a=%d,b=%d",a,b);
}
A 5 4 B 5,4 C 5 b=4 D 5,b=4
8. C語言中,while和do…while循環的主要區别是( )
A. while的循環控制條件比do…while的循環控制條件嚴格
B. do…while的循環體至少無條件執行一次
C. do…while允許從外部轉到循環體内
D. do…while的循環體不能是複合語句
9. 循環語句for(x=0,y=0;(y!=123)||(x<4);x ); 的循環執行( )
A. 無限次 B. 不确定次數 C. 4次 D. 3次
10.在C語言中,設有數組定義 char array []="China"; 則array所占的空間為( )
A. 4個字節
B. 5個字節
6個字節
7個字節
11.若變量已正确說明為int類型,要通過語句scanf(“%d %d %d”,&a,&b,&c);給a,b,c分别賦值3,5,8,不正确的輸入形式是( )
3<enter> B. 3,5,8<enter>
5<enter>
8<enter>
C. 3<enter> D. 3 5<enter>
5 8<enter> 8
12. char *p="happy new year"; char *q=p; int k;
for( k=1;k<8;k )
{ putchar(*q);
q ; }
上面C程序段的輸出結果是( )
A. happy new year
B. happy new
C. happy n
D. happy
E. appy n
13. 設double *p[5]; 則
p 是指向double型變量的指針
p 是double型數組
p 是指針數組,其元素是指向double型變量的指針
p 是數組指針,指向double型數組
14.兩個指針變量不可以( )
A. 相加 B 比較 C 相減 D 指向同一地址
15. 對C語言函數描述正确的是
在C語言中調用函數時,隻能把實參的值傳給形參,形參的值不能傳回給實參
C函數既可以嵌套定義又可以遞歸調用
函數必須有返回值,否則不能使用函數
函數必須有返回值,返回值類型不定
16. 設有如下定義,則對data中的a成員的正确引用是( )
struct test{int a;float b;}data,*p=&data;
A. (*p).data.a B.(*p).a C. p->data.a D. p.data.a
17. 有如下程序 (提示: 注意宏替換的規則)的
#define N 2 的
#define M N 1 的
#define NUM 2*M 1 的
#main() 的
{ int i; 的
for(i=1;i<=NUM;i ) printf(“%d\n”,i); 的
} 的
該程序中的for循環執行的次數是( )
A. 5 B. 6 C. 7 D. 8
18.若有以下定義,則printf(“%d\n”,sizeof(them));的輸出是( )
typedef union {long x[2];int y[4];char z[8];} MYTYPE;
MYTYPE them;
A.32 B.16 C.8 D.24
19. 下列語句中,将c定義為文件型指針的是( )
A. FILE c; B. FILE *c; C. file c; D. file *c;
20.下列關于C語言數據文件的叙述中正确的是的
51TeA.文件由ASCII碼字符序列組成,C語言隻能讀寫文本文件的
51stB.文件由二進制數據序列組成,C語言隻能讀寫二進制文件的
51TeC.文件由記錄序列組成,可按數據存放形式分為二進制文件和文本文件
51TtD.文件由數據流形式組成,可按數據的存放形式分為二進制文件和文本文件
二、填空題 (本大題共10小題,每小題2分,共20分)
在定義變量的同時給變量賦予初值就稱為___________________________________
2.下面程序段的輸出結果是___________________________________________
int a=28; a=a&21; printf(“%d %o\n”,a,a);
3.能正确表示0≤a≤10的邏輯表達式是_________________________________
4.若有定義int a[3],*p; 則使p指向數組a的賦值語句是_______________________
5.strcmp函數的功能是________________________________________
6. 寫出數學式的C語言表達式________________________________
7.将以下程序寫成三目運算符的表達式是____________________________________
if(a>b) max=a; else max=b
8.設有定義如下:#define F(N) 2*N, 則表達式F(2 3)的值是_____________________.
9.在C語言中,指針運算符為___________________,取地址運算符________________。
10. 在C語言中,參數傳遞的兩種形式是___________和___________
三、程序分析題 (本大題共5小題,每小題5分,共25分)
1.若運行時輸入:2<回車>,則以下程序的運行結果是__________________________
#include <stdio.h>
main()
{
char class;
printf(“Enter 1 for 1st class post or 2 for 2nd post:”);
scanf(“%c”, &class);
if (class==’1’)
printf(“1st class postage is 19p”);
else
printf(“2nd class postage is 14p”);
}
2.以下程序的執行結果是_____________________________________________
#include<stdio.h>
void main()
{
int num=0;
while(num<=2){
num ;
printf("%d ",num);
}
}
3.以下程序的輸出結果是_______________________________________
#include <stdio.h>
main( )
{ int k=4, m=1, p;
p=func(k,m);
printf("%d",p);
}
func(int a, int b)
{
int m=0, i=2;
i = i m 1;
m=i a b;
return m;
}
4.以下程序的執行結果是( )。
#include <stdio.h>
main( )
{
int a[]={5,6,7,8}, i;
func(a);
for (i=0; i<4; i )
printf("%d", a[i]);
}
func(int *b)
{
int j;
for (j=0; j<4; j )
b[j]=2*j;
}
5.設有程序myapp.c,代碼如下:
#include <stdio.h>
main(int argc,char *argv[])
{
while(--argc>0){ printf(“%s”,argv[argc]); printf(“\t”);}
}
編譯後形成myapp.exe,如果輸入如下的命令:
myapp aaa 333 bbb 444
則輸出結果是:______________________________________________________
四、程序填充題 (本大題共5小題,每小題4分。共20分)
1、根據以下嵌套if語句所給條件,填寫switch語句,使它完成相同的功能。
(假設mark的取值在1-100之間) if 語句如下:
if (mark<60) k=1;
else if (mark<70) k=2;
else if (mark<80) k=3;
else if (mark<90) k=4;
else if (mark<100) k=5;
請填寫下面經轉換後的switch語句中的括号中的内容。
switch ( )
{
__________: k=1; break;
case 6 : k=2; break;
case 7 : k=3; break;
case 8 : k=4; break;
___________: k=5; break;
}
2. 将八個數輸入到數組中,找出其中最大數和最小數并輸出。
main()
{
int I,max,min,a[_______];
for(I=0;I<8;I ) scanf(“%d”,&a[I]);
max=a[0];min=a[0];
for(I=1;I<8;I )
{
if(a[I]>max)
max=__________________________;
if(a[I]<min)
______________________________;
}
printf(“max=%d, min=%d\n”, ____________________________);
}
3.下列程序的功能是輸入三角形的三條邊a,b,c。求三角形的面積,請填空:
#include <math.h>
main()
{
float a,b,c,s,area;
scanf(“ ”,&a,&b,&c); /*填空*/
s=1.0/2*(a b c);
area= (s*(s-a)*(s-b)*(s-c));/*填空*/
printf(“a=%7.2f, b=%7.2f c=%7.2f, s=%7.2f\n”,a,b,c,s);
printf(“area=%7.2f\n”,area);
}
4.以下程序的功能是求π的近似值,請填空:(提示:)
#include <stdio.h>
main()
{
int s;
____________________;/*填空*/
t=1;pi=0;n=1.0;s=1;
while(fabs(t)>1e-6)
{
__________________;/*填空*/
n=n 2;
s=-s;
t=s/n;
}
pi=pi*4;
printf(“pi=.6f\n”,pi);
}
5.下列程序的功能是從一個文件中讀出三個結構體保存在一結構體數組中,請填空:
#include <stdio.h>
struct Test {
char a[20] ;
} ;
main(){
__________________;/*填空*/
struct Test x[3];
int i;
fp = fopen (“d:\\cwz\\abc.bat”, ”rb”) ;
for (i=0; i<3; i )
__________________;/*填空*/
fclose(fp);
}
五、程序設計題 (本大題共2小題,第一題7分,第二題8分,共15分)
1.編寫程序,輸入華氏溫度(F),按下列公式計算并輸出對應的攝氏溫度(C).
C=5(F-32)/9
2. 編寫程序用結構體存放下表中的數據,然後計算并輸出每人的姓名和實發工資,實發工資=基本工資 浮動工資-支出。
姓名
基本工資
浮動工資
支出
Zhao
Qian
Sun
240.0
360.0
560.0
400.0
120.0
0.0
75.0
50.0
80.0
結構體定義如下:
struct worker
{
char name[10];
float jbgz;
float fdgz;
float zhichu
};
參考答案:
一、單項選擇題
1.C 2.D 3.B 4.A 5.D
6.D 7.D 8.B 9.A 10.C
11.B 12.C 13.C 14.A 15.A
16.B 17.B 18.C 19.B 20.D
二、填空題
1.變量初始化
2. 20 24
3. a<=10&&a>=0
4. p=a; 或 p=&a[0];
5. 比較兩個字符串的大小
6.x=(-b sqrt(b*b-4*a*c))/(2*a)
7. max=(a>b)?a:b 或 max=a>b?a:b
8. 7
9. * & &
10. 按值傳遞 按地址傳遞
三、程序分析題
1.2nd class postage is 14p
2. 1 2 3
3. 8
4. 0246
5. 444 bbb 333 aaa
四、程序填充題
1.default
case 9
2. 8
a[I]
min=a[I]
max,min
3. %f%f%f
Sqrt
4. float t,pi,n
pi=pi t
5. FILE *fp
fread(&x[i],sizeof(struct Test),1 fp)
五、程序設計題
1. #include<stdio.h>
main()
{float C,F;
printf(“input F:”);
scanf(“%f”,&F);
C=5*(F-32)/9;
printf(“C=%.2f”,C) ;
}
2. #include <stdio.h>
struct worker
{
char name[10];
float jbgz;
float fdgz;
float zhichu;
};
main()
{struct worker w[3]={{"Zhao",240,400,75},{"Qian",360,120,50},{"Sun",560,0,80}};
int i;
printf("name sfgz\n");
for(i=0;i<3;i )
printf("%4s.2f\n",w[i].name,w[i].jbgz w[i].fdgz-w[i].zhichu);
}
,更多精彩资讯请关注tft每日頭條,我们将持续为您更新最新资讯!