① c語言程序結構的特點是什麼由哪些基本部分組成
C語言程序結構的特點是順序結構、選擇結構、循環結構。
1、順序結構,默認的流程結構,按照書寫順序執行每一條語句。
2、選擇結構,對給定的條件進行判斷,再根據判斷結果來決定執行那一段代碼。
3、循環結構,在給定條件成立的情況下,反復執行某一段代碼。只有滿足條件是才會執行循環體,特別注意是否進入了死循環。
(1)c語言文件由結構序列構成擴展閱讀
C語言程序數據類型關鍵字
short:修飾int,短整型數據,可省略被修飾的int。(K&R時期引入)
long:修飾int,長整型數據,可省略被修飾的int。(K&R時期引入)
long long:修飾int,超長整型數據,可省略被修飾的int。(C99標准新增)
signed:修飾整型數據,有符號數據類型。(C89標准新增)
unsigned:修飾整型數據,無符號數據類型。(K&R時期引入)
restrict:用於限定和約束指針,並表明指針是訪問一個數據對象的唯一且初始的方式。(C99標准新增)
② C語言中文件由什麼 組成
C語言中文件由字元序列組成。C語言處理文件的方法是將文件以數據流的形式處理,不是將文件作為一個結構集合來處理,所以,C語言中文件的組織方式是無結構的字元序列方式。
C語言的優點有三個:
1、代碼量小。
要完成同樣一個功能,用C語言編寫出來的程序的容量是很小的,而用其他語言編寫容量就會比較大。
2、運行速度快。
3、功能強大。
(2)c語言文件由結構序列構成擴展閱讀:
C語言的特點:
1、語言簡潔,緊湊,使用方便,靈活
2、運算符豐富
3、數據類型豐富,具有現代語言的各種數據結構
4、具有結構化的控制語句
5、語法限制不太嚴格,程序設計自由度大
6、C語言允許直接訪問物理地址,能進行位(bit)操作,能實現匯編語言的大部分功
能,可以直接對硬體進行操作
7,生成目標代碼質里高,程序執行效率高
8,用C語言編寫的程序可移植性好(與匯編語言比)
演算法的特性:
1、有窮性,一個演算法應包含的有限的操作步驟,而不能是無限的
2、確定性,演算法的每一個步驟都應該是確定的,而不應當是含糊的,模稜兩可的
3、有零個或多個輸入,所謂輸入是指執行演算法時需要從外界取得必要的信息
4、有一個或多個輸出,演算法的目的就是為了求解,解就是輸出
5,有效性,演算法中的每一個步驟都應該能有效的執行,並得出確定的結果
③ 計算機國二c語言,考試內容是什麼有哪些知識點說詳細點!
您好,SA團隊給出的答案(直接給你試題看看吧,這樣比較詳細)2009年9月全國計算機等級考試筆試試卷
二級公共基礎知識和C語言程序設計
(考試時間90分鍾,滿分100分)
一、選擇題((1)~(10)、(21)~(40)每題2分,(11)~(20)每題1分,70分)
(1)下列數據結構中,屬於非線性結構的是( )。
A)循環隊列 B)帶鏈隊列
C)二叉樹 D)帶鏈棧
(2)下列數據結構中,能夠按照「先進後出」原則存取數據的是( )。
A)循環隊列 B)棧
C)隊列 D)二叉樹
(3)對於循環隊列,下列敘述中正確的是( )。
A)隊頭指針是固定不變的
B)隊頭指針一定大於隊尾指針
C)隊頭指針一定小於隊尾指針
D)隊頭指針可以大於隊尾指針,也可以小於隊尾指針
(4)演算法的空間復雜度是指( )。
A)演算法在執行過程中所需要的計算機存儲空間
B)演算法所處理的數據量
C)演算法程序中的語句或指令條數
D)演算法在執行過程中所需要的臨時工作單元數
(5)軟體設計中劃分模塊的一個准則是( )。
A)低內聚低耦合B)高內聚低耦合
C)低內聚高耦合D)高內聚高耦合
(6)下列選項中不屬於結構化程序設計原則的是( )。
A)可封裝 B)自頂向下 C)模塊化 D)逐步求精
(7)軟體詳細設計產生的圖如下:
begin
1
該圖是( )。
A)N-S圖 B)PAD圖
C)程序流程圖D)E-R圖
(8)資料庫管理系統是( )。
A)操作系統的一部分B)在操作系統支持下的系統軟體
C)一種編譯系統D)一種操作系統
(9)在E-R圖中,用來表示實體聯系的圖形是( )。
A)橢圓形 B)矩形 C)菱形 D)三角形
(10)有三個關系R,S和T如下:
2
R S T
A
B
C
A
B
C
A
B
C
a
1
2
d
3
2
a
1
2
b
2
1
b
2
1
c
3
1
c
3
1
d
3
2
其中關系T由關系R和S通過某種操作得到,該操作為( )。
A)選擇 B)投影 C)交 D)並
(11)以下敘述中正確的是( )。
A)程序設計的任務就是編寫程序代碼並上機調試
B)程序設計的任務就是確定所用數據結構
C)程序設計的任務就是確定所用演算法
D)以上三種說法都不完整
(12)以下選項中,能用作用戶標識符的是( )。
A)void B)8_8 C)_0_ D)unsigned
(13)閱讀以下程序
# include <stdio.h>
main()
{ int case; float printF;
printf ("請輸入2個數:");
scanf ("%d %f", &case, &printF);
printf ("%d %f\n", case, printF);
}
該程序在編譯時產生錯誤,其出錯原因是( )。
A)定義語句出錯,case是關鍵字,不能用作用戶自定義標識符
B)定義語句出錯,printF不能用作用戶自定義標識符
C)定義語句無錯,scanf不能作為輸入函數使用
D)定義語句無錯,printf不能輸出case的值
(14)表達式:(int)((double)9/2)-(9)%2的值是( )。
A)0 B)3 C)4 D)5
(15)若有定義語句:int x=10;,則表達式x-=x+x的值為( )。
A)-20 B)-10 C)0 D)10
(16)有以下程序
# include <stdio.h>
main()
{ int a=l, b=0;
printf ("%d,", b=a+b);
printf ("%d\n", a=2*b);
}
程序運行後的輸出結果是( )。
A)0,0 B)1,0 C)3,2 D)1,2
(17)設有定義:int a=l, b=2, c=3;,以下語句中執行效果與其它三個不同的是( )。
A)if(a>b)c=a,a=b,b=c; B)if(a>b){c=a,a=b,b=c;}
C)if(a>b)c=a;a-b;b=c; D)if(a>b){c=a;a-b;b=c;}
(18)有以下程序
# include <stdio.h>
3
main()
{ int c=0, k,
for(k=1; k<3; k++)
switch (k)
{ default: c+=k;
case 2: c++; break;
case 4: c+=2; break;
}
printf("%d\n", c);
}
程序運行後的輸出結果是( )。
A)3 B)5 C)7 D)9
(19)以下程序段中,與語句:k=a>b?(b>c ? 1 : 0) : 0;功能相同的是( )。
A)if((a>b) && (b>c)) k=l; B)if((a>b)||(b>c))k=l;
else k=0; else k=0;
C)if(a<=b)k=0; D)if(a>b) k=l;
else if(b<=c)k=1; else if(b>c)k=1;
else k=0;
(20)有以下程序
# include <stdio.h>
main()
{ char s[]={"012xy"}; int i, n=0;
for (i=0; s[i]!=0; i++)
if(S[i]>='a' &&s[i]<='z') n++;
printf("%d\n",n);
}
程序運行後的輸出結果是( )。
A)0 B)2 C)3 D)5
(21)有以下程序
# include <stdio.h>
main()
{ int n=2,k=0;
while (k++ &&n++>2);
printf("%d %d\n",k,n);
}
程序運行後的輸出結果是( )。
A)0 2 B)1 3 C)5 7 D)l 2
(22)有以下定義語句,編譯時會出現編譯錯誤的是( )。
A)char a='a'; B)char a='\n'; C)char a='aa'; D)char a='\x2d';
(23)有以下程序
# include <stdio.h>
main()
{ char c1,c2;
c1='A'+'8'-'4';
c2='A'+'8'-'5';
printf("%c,%d\n",c1,c2);
4
}
已知字母A的ASCII碼為65,程序運行後的輸出結果是( )。
A)E,68 B)D,69 C)E,D D)輸出無定值
(24)有以下程序
# include <stdio.h>
void fun (int p)
{ int d=2;
p=d++; printf("%d",p);}
main()
{ int a=1;
fun(a); printf("%d\n",a);}
程序運行後的輸出結果是( )。
A)32 B)12 C)21 D)22
(25)以下函數findmax擬實現在數組中查找最大值並作為函數值返回,但程序中有錯導致不能實現預定功能。
# define MIN -2147483647
int findmax (int x[],int n)
{ int i,max;
for(i=0;i<n;i++)
{ max=MIN;
if(max<x[i]) max=x[i];}
return max;
}
造成錯誤的原因是( )。
A)定義語句int i,max;中max未賦初值
B)賦值語句max=MIN;中,不應給max賦MIN值
C)語句if(max<X[i])max=X[i];中判斷條件設置錯誤
D)賦值語句max=MIN;放錯了位置
(26)有以下程序
# include <stdio.h>
main()
{ int m=1, n=2, *p=&m, *q=&n, *r;
r=p; p=q; q=r;
printf("%d,%d,%d,%d\n",m,n,*p,*q);
}
程序運行後的輸出結果是( )。
A)1,2,1,2 B)1,2,2,1 C)2,1,2,1 D)2,1,1,2
(27)若有定義語句:int a[4][10],*p,*q[4];且0≤i<4,則錯誤的賦值是( )。
A)p=a B)q[i]=a[i] C)p=a[i] D)p=&a[2][1]
(28)有以下程序
# include <stdio.h>
# include <string.h>
main()
{ char str[][20]={"One*World","One*Dream!"},*p=str[1];
printf("%d,",strlen(p));printf("%s\n",p);
}
5
程序運行後的輸出結果是( )。
A)9,One*World B)9,One*Dream! C)10,One*Dream! D)10,One*World
(29)有以下程序
# include <stdio.h>
main()
{ int a[]={2, 3, 5, 4}, i;
for(i=0;i<4;i++)
switch(i%2)
{ case 0 : switch(a[i]%2)
{case 0 : a[i]++;break;<br>case 1 : a[i]--;<br>}break;
case 1 : a[i]=0;
}
for(i=0;i<4;i++)printf("%d",a[i]);printf("\n");
}
程序運行後的輸出結果是( )。
A)3 3 4 4 B)2 0 5 0 C)3 0 4 0 D)0 3 0 4
(30)有以下程序
# include <stdio.h>
# include <string.h>
main()
{ char a[10]="abcd";
printf("%d,%d\n",strlen(a),sizeof(a));
}
程序運行後的輸出結果是( )。
A)7,4 B)4,10 C)8,8 D)10,10
(31)下面是有關C語言字元數組的描述,其中錯誤的是( )。
A)不可以用賦值語句給字元數組名賦字元串
B)可以用輸入語句把字元串整體輸入給字元數組
C)字元數組中的內容不一定是字元串
D)字元數組只能存放字元串
(32)下列函數的功能是( )。
fun(char *a,char *b)
{ while((*b=*a)!='\0') {a++; b++;} }
A)將a所指字元串賦給b所指空間
B)使指針b指向a所指字元串
C)將a所指字元串和b所指字元串進行比較
D)檢查a和b所指字元串中是否有'\0'
(33)設有以下函數:
void fun(int n,char *s) {……}
則下面對函數指針的定義和賦值均正確的是( )。
A)void (*pf)(); pf=fun; B)void *pf(); pf=fun;
C)void *pr(); *pf=fun; D)void(*pf)(int,char);pf=&fun;
(34)有以下程序
# include <stdio.h>
6
int f(int n);
main()
{ int a=3,s;
s=f(a);s=s+f(a);printf("%d\n",s);
}
int f(int n)
{ static int a=1;
n+=a++;
return n;
}
程序運行後的輸出結果是( )。
A)7 B)8 C)9 D)10
(35)有以下程序
# include <stdio.h>
# define f(x) x*x*x
main()
{ int a=3,s,t;
s=f(a+1);t=f((a+1));
printf("%d,%d\n",s,t);
}
程序運行後的輸出結果是( )。
A)10,64 B)10,10 C)64,10 D)64,64
(36)下面結構體的定義語句中,錯誤的是( )。
A)struct ord {int x; int y; int z;}; struct ord a;
B)struct ord {int x; int y; int z;} struct ord a;
C)struct ord {int x; int y; int z;}a;
D)struct {int x; int y; int z;} a;
(37)設有定義:char *c;,以下選項中能夠使字元型指針c正確指向一個字元串的是( )。
A)char str[]="string";c=str; B)scanf("%s",c);
C)c=getchar(); D)*c=*string";
(38)有以下程序
# include <stdio.h>
# include <string.h>
Struct A
{ int a; char b[10]; double c;};
struct A f(struct A t);
main()
{ struct A a={1001,"ZhangDa",1098.0};
a=f(a); printf("%d,%s,%6.1f\n",a.a,a.b,a.c);
}
struct A f(Struct A t)
{ t.a=1002; strcpy(t.b,"ChangRong");t.c=1202.0;return t;}
程序運行後的輸出結果是( )。
A)1001,ZhangDa,1098.0 B)1002,ZhangDa,1202.0
C)1001,ChangRong,1098.0 D)1002,ChangRong,1202.0
(39)若有以下程序段
7
int r=8;
printf("%d\n",r>>1);
輸出結果是( )。
A)16 B)8 C)4 D)2
(40)下列關於C語言文件的敘述中正確的是( )。
A)文件由一系列數據依次排列組成,只能構成二進制文件
B)文件由結構序列組成,可以構成二進制文件或文本文件
C)文件由數據序列組成,可以構成二進制文件或文本文件
D)文件由字元序列組成,其類型只能是文本文件
二、填空題(每空2分,共30分)
(1)某二叉樹有5個度為2的結點以及3個度為1的結點,則該二叉樹中共有【1】個結點。
(2)程序流程圖中的菱形框表示的是【2】。
(3)軟體開發過程主要分為需求分析、設計、編碼與測試四個階段,其中【3】階段產生「軟體需求規格說明書」。
(4)在資料庫技術中,實體集之間的聯系可以是一對一或一對多或多對多的,那麼「學生」和「可選課程」的聯系為【4】。
(5)人員基本信息一般包括:身份證號,姓名,性別,年齡等。其中可以作為主關鍵字的是【5】。
(6)若有定義語句:int a=5;,則表達式:a++的值是【6】。
(7)若有語句double x=17; int y;,當執行y=(int)(x/5)%2;之後y的值為【7】。
(8)以下程序運行後的輸出結果是【8】。
# include <stdio.h>
main()
{ int x=20;
printf("%d",0<x<20);
printf("%d\n",0<x && x<20); }
(9)以下程序運行後的輸出結果是【9】。
# include <stdio.h>
main()
{ int a=1,b=7;
do {
b=b/2; a+=b;
} while (b>1);
printf ("%d\n",a); }
(10)有以下程序
# include <stdio.h>
main()
{ int f,fl,f2,i;
f1=0; f2=1;
printf("%d %d",fl,f2);
for(i=3;i<=5;i++)
{ f=fl+f2; printf("%d",f);
f1=f2; f2=f;
}
printf("\n");
}
程序運行後的輸出結果是【10】。
8
(11)有以下程序
# include <stdio.h>
int a=5;
void fun(int b)
{ int a=10;
a+=b; printf("%d",a);
}
main()
{ int c=20;
fun(c); a+=c; printf("%d\n",a);
}
程序運行後的輸出結果是【11】。
(12)設有定義:
struct person
{ int ID; char name[12];}p;
請將scanf("%d", 【12】); 語句補充完整,使其能夠為結構體變數p的成員ID正確讀入數據。
(13)有以下程序
# include <stdio.h>
main()
{ char a[20]="How are you?",b[20];
scanf("%s",b); printf("%s %s\n",a,b);
}
程序運行時從鍵盤輸入:How are you?<回車>
則輸出結果為【13】。
(14)有以下程序
# include <stdio.h>
typedef struct
{ int num; double s; } REC;
void funl(REC x) {x.num=23; x.s=88.5;}
main()
{ REC a={16,90.0};
funl (a);
printf("%d\n",a.num);
}
程序運行後的輸出結果是【14】。
(15)有以下程序
# include <stdio.h>
fun(int x)
{ if(x/2>0) fun(x/2);
printf("%d", x);
}
main()
{ fun(6); printf("\n"); }
程序運行後的輸出結果是【15】。
④ c語言程序由哪三部分組成
c語言程序由頭文件、main函數、子函數和賀扮結構體組成的。
1、頭文件:頭文件包含程序中要調用的庫函數,程序中調用了某個庫函數,程序開始時必須寫上「#include<頭文件名>或#include「頭文件名」。
2、main函數:程序的主體部分,實現演算法的主幹。
3、子函數:main函數中用到的方法,為避禪亮灶免main函數過長引起錯誤,會把演算法的某個過程摘出來用子函數實現。子函數在main函數鍵岩中調用,在main函數外定義。
4、結構體:可有可無,是一種特殊的數據類型,由編程者根據需要定義。
⑤ 2020年計算機二級C語言考試每日一練(6月18日)
備考全國計算機二級C語言考試的小夥伴們,復習的都怎麼樣了呢?環球青藤小編發布了2020年計算機二級C語言考試每日一練供大家參考復習,小夥伴們快來做一做,測試一下自己吧!了解更多全國計算機二級C語言備考資料敬請關注環球青藤計算機二級頻道。
2020年計算機二級C語言考試每日一練(6月18日)
1.下列四組選項中,正確的C語言標識符是( )。
A、 %x
B、a+b
C、a123
D、123
答案:C
2、下列四組字元串中都可以用作C語言程序中的標識符的是( )。
A、print _3d db8 aBc
B、Iam one_half start$it 3pai
C、str_1 Cpp pow while
D、Pxq My->book line# His.age
答案:A
3.C語言中的簡單數據類型包括( )。
A、整型、實型、邏輯型
B、整型、實型、邏輯型、字元型
C、整型、字元型、邏輯型
D、整型、實型、字元型
答案:D
4.在C語言程序中,表達式5%2的結果是()
A、2.5
B、2
C、1
D、3
答案:C
5.下列關於C語言文件的敘述中正確的是()。
A.文件由一系列數據依次排列組成,只能構成二進制文件
B.文件由結構序列組成,可以構成二進制文件或文本文件
C.文件由數據序列組成,可以構成二進制文件或文本文件
D.文件由字元序列組成,其類型只能是文本文件
答案:C
更多2020年計算機二級C語言考試每日一練試題,請繼續關注環球青藤計算機二級頻道。需要及時了解考試動態的小夥伴可“ 免費預約簡訊提醒”屆時環球青藤會及時為大家推送2020年計算機二級考試相關信息提醒。環球青藤友情提示:對於想要參加計算機二級考試的小夥伴們,環球青藤特地為您准備了計算機二級考試資料,如有需要請點擊文章下方“免費下載>>>計算機二級考試資料”下載學習。
⑥ C語言源程序是由什麼構成的
C語言源程序是由:數據類型、常量與變數、數組、指針、字元串、文件輸入/輸出、運算構成。
1、數據類型
C的數據類型包括:整型、字元型、實型或浮點型(單精度和雙精度)、枚舉類型、數組類型、結構體類型、共用體類型、指針類型和空類型。
2、常量與變數
常量其值不可改變,符號常量名通常用大寫。
變數是以某標識符為名字,其值可以改變的量。標識符是以字母或下劃線開頭的一串由字母、數字或下劃線構成的序列,請注意第一個字元必須為字母或下劃線,否則為不合法的變數名。變數在編譯時為其分配相應存儲單元。
3、數組
如果一個變數名後面跟著一個有數字的中括弧,這個聲明就是數組聲明。字元串也是一種數組。它們以ASCII的NULL作為數組的結束。要特別注意的是,方括內的索引值是從0算起的。
4、指針
如果一個變數聲明時在前面使用 * 號,表明這是個指針型變數。換句話說,該變數存儲一個地址,而 *(此處特指單目運算符 * ,下同。C語言中另有 雙目運算符 *) 則是取內容操作符,意思是取這個內存地址里存儲的內容。指針是 C 語言區別於其他同時代高級語言的主要特徵之一。
指針不僅可以是變數的地址,還可以是數組、數組元素、函數的地址。通過指針作為形式參數可以在函數的調用過程得到一個以上的返回值,不同於return(z)這樣的僅能得到一個返回值。
指針是一把雙刃劍,許多操作可以通過指針自然的表達,但是不正確的或者過分的使用指針又會給程序帶來大量潛在的錯誤。
5、字元串
C語言的字元串其實就是以'