當前位置:首頁 » 編程語言 » c語言程序段題目
擴展閱讀
webinf下怎麼引入js 2023-08-31 21:54:13
堡壘機怎麼打開web 2023-08-31 21:54:11

c語言程序段題目

發布時間: 2022-09-14 12:44:12

c語言題目

輸出46
表達式++k值為2
跳轉case 2分支,輸出2*k,即4
由於沒有break語句,繼續向後執行輸出3*k,即6

⑵ 《C語言程序設計》練習題

一、選擇題
1、C語言規定,在一個源程序中,main()函數的位置(C )。
A) 必須在最開始 B)必須在最後
C) 可以任意 D) 必須在系統調用的庫函數後面

這題你死記就行,你看看這個
任何一個C++程序都必須定義一個main函數,它的返回類型總是int類型。這個函數由操作系統來調用,在main函

數執行完以後,程序也就終止了。 main也可以使用return向操作系統返回一個值,使用操作系統的命令可以檢測

main的返回值。一般約定在main返回0時,表示程序運行過程中沒有出現錯誤,其它非零值表示程序出現異常情況。
若沒有為main指定返回值,這樣返回值是任意的。

2、若x和y都是int 型變數,x=100,y=200,且有以下程序段,printf(「%d」,(x,y));則其輸出結果是( A)。
A) 200 B) 100 C) 100 200 D) 輸出不確定值

(x,y)這是個逗號表達式,表達式的值為最後一個逗號後面表達式的值,因為前面有一個%d,所以輸出 的是y的



3、合法的C語法字元常量是(C )。
A) 「A」 B) 65 C) 『\t』 D) A

字元都是由兩個單引號括起來的,死記, a)為字元串

4、表達式「3!=4」的值是(A )。
A) 1 B) 0 C) T D) F

!=是c語言的邏輯運算符,3!=4為真,多以得1, 3=4為假,值為0

5、 int a=1,b=2,c=3,d=4,執行下列程序後x的值為( C)。
if(a>b) x=1;else if (c>d) x=2;else x=3;
A) 1 B) 2 C) 3 D) 4

如果a>b,1>2為假,不執行x=1,執行else if(c>d),判斷:3>4為假,不執行x=2,執行=3,完

6、以下程序的輸出結果是(D)。
Int x=10,y=3,z;printf(「%d\n」,z=(x%y,x/y));
A)1 B) 0 C) 4 D) 3

逗號表達式,x%y,10%3,商3餘1,模取余數1,x/y,10/3,商3餘1,除法取商3,逗號表達式,表達式的值為最後一

個逗號後面表達式的值

7、為表示x≥y≥z,應使用C語言表達式(A )。
A) (x>=y)&&(y>=z) B) (x>=y) AND (y>=z)
C) (x>=y>=z) D) (x>=y) & (y>=z)

關系運算符,x>=y與y>=z必須是同時成立的,因此要用邏輯運算符&&,&&與的意思

8、合法的數組定義是( a )。
A) int a[ ]=」string」; B) int a[5]={0,1,2,3,4,5};
C) char a=」string」; D) char a[ ]={「01234」};

a不指定數組長度定義,正確
b數組長度為5,就是裡面有5個數組元素,多了一個數組元素
c定義a不是數組而是一個變數,素組應該是a[]
d是錯的,字元串是這樣定義的:char a[ ]={'0','1','2','3','4','\0'};
[4]中數字是數組長度,說明裡面有幾個元素

9、設x和y均為int型變數,則語句「x+=y;y=x-y;x-=y;」的功能是(D)。
A) 把x和y按從小到大排列 B)把x和y按從大到小排列
C)無確定結果 D)交換x和y中的值

x+=y等同於x=x+y,把x加y的值賦給x,x現在存的是x與y的和
y=x-y把x減y的值賦給y,x現在存的是x與y的和 (x+y)-y=x,把x的值給y,y存x的值
x-=y等同於x=x-y,把x減y的值賦給x,(x+y)-y=x,現在的後面的y存的是x的值,做完後x里存的值是y,完成交換

10、若已定義x和y為double類型,則表達式「x=1,y=x+3/2」的值是(C)。
A) 1 B)2 C) 2.0 D) 1.0

逗號表達式,先讓x=1在算y=x+3/2,得2,因為是double類型,所以有小數點

11、下列條件語句中,功能與其他語句不同的是 (D)
A) if(a) printf("%d\n",x); else printf("%d\n",y);
B) if(a==0) printf("%d\n",y); else printf("%d\n",x);
C) if (a!=0) printf("%d\n",x); else printf("%d\n",y);
D) if(a==0) printf("%d\n",x); else printf("%d\n",y);

a 如果a為真輸出x,如果a為假輸出y
b 如果a==0,也就是為假,輸出y,a為真輸出x,同a
c 如果a!=0為真,輸出x,a為假輸出y同上
d 如果a為假輸出x,如果a為真輸出y,與以上的都不同

12、以下能正確定義二維數組的是 (C)
A) int a[][3]; B) int a[][3]=2{2*3};
C) int a[][3]={0}; D) int a[2][3]={{1},{2},{3,4}};

a 沒有給數組賦初值
b {}里不能有*
c 正確,記住第一個[]中可以為空,第二個[]不能為空,死記
d a[2][3] 的意思是有兩個一維數組,每個一維數組里有3個元素,{{1},{2},{3,4}}; 她的意思是三個數組,{}中的每一個{}代表一個數組,里邊的數為數組元素

13、用C語言編寫的代碼程序 (B)
A)可立即執行 B)是一個源程序
C)經過編譯即可執行 D)經過編譯解釋才能執行

死記

⑶ C語言選擇題:以下正確的程序段是:()

A對 字元數組賦值可以不用&,用了也是對的
B錯 只有一個指針,但是這個指針並未指向可用的空間。
C錯 雖然程序運行沒問題,但是這樣做是從s[2]開始寫入.s[0]和s[1]是隨機值.
前面0~1元素的數據不確定會導致後面不能完整用str索引 ,獲取不到正確值
D錯 str是什麼,如果前面初始化為char str[20],也是錯的,因為p[2]是一個字元,不是地址
所以A對,C的話 可以運行,但是獲取的值不對,看你怎麼認為該選項對不對了
望採納

⑷ C語言入門題目,求詳細易懂的解答過程。

答案為第一行:Tony。
解答:for循環共循環2次,然後strcpy(a,b)比較兩串字元大小,如果strcpy值大於0,則a大於b。具體的比較是看字元串的字母的ASCII碼的大小,如果相同,再繼續比較第二個,這個不贅述。
主要看一下name[],對於一維數組來講,它是元素,對於二維數組來講,它不是具體的元素,而是代表的一維數組。比如name[3][20],為3行20列,那麼name[0],它代表的是組成二維數組的第一維數組。又知道puts()括弧里可以放一維數組名,可以輸出它裡面的字元串,對放name[0]的話,那就是輸出3行20列中的第一行字元串。
通過for比較我們已經得出結果,即兩次for循環都不符合條件,因此,m沒有變化,=0。所以puts(nam[0])的話,就是輸出Tony。
望樓主採納。

⑸ C語言程序段 選擇題

while 語句的語義是:計算表達式的值,當值為真(非0)時, 執行循環體語句!!!如果是假,就跳出循環;
那麼1<=x<=2始終為真,所以是死循環;
如果換成x=0,那麼列印一個#,就結束了!
如果換成x!=0,那麼列印###,就結束了!
1<=x<=2是合法的,等於1<=x && x<=2

⑹ c語言程序題目

為了方便調試,我直接讓隨機數顯示,你不要可以將它隱藏掉。

#include<stdio.h>
#include<stdlib.h>
#include<time.h>
intmain()
{
intn,a,i=1;
srand(time(NULL));
n=rand()%100+1;
while(1)
{
system("cls");
printf("(第%d次猜%d)請輸入要猜的數字:",i,n);
scanf("%d",&a);
if(a==n)//猜中
break;
if(a==-1)
{
printf("玩家終止程序! ");
return0;
}
i++;
}
if(i<=4)
printf("verygood ");
if(i>4&&i<=7)
printf("good ");
if(i>7&&i<=10)
printf("normal ");
if(i>10)
printf("差 ");
return0;
}

⑺ C語言的題目

#include"stdio.h"
intmain(intargc,char*argv[]){
charch;
intuc,lc,di,oh;
uc=lc=di=oh=0;
printf("Pleaseenterastring('q'/'Q'end)... ");
while(scanf("%c",&ch)==1){
if(ch>='A'&&ch<='Z')
uc++;
elseif(ch>='a'&&ch<='z')
lc++;
elseif(ch>='0'&&ch<='9')
di++;
else
oh++;
if(ch=='q'||ch=='Q')
break;
}
printf("Uppercase: %d Lowercase: %d Numbers: %d Other: %d ",uc,lc,di,oh);
return0;
}

運行樣例:

⑻ 一道C語言題:若有如下程序段,其中s,a,b,c均已定義為整型變數,且a,c均已賦值(c大於0)

for循環執行依次,s++,for循環從b=1執行到b=c,即給s加了c個1,即s=s+c=a+c。

⑼ 兩道C語言題目

1.
for先執行第一個賦值語句,因為第一個賦值語句為空,不理,之後就判斷
10>5,進入循環i++,再執行第三個賦值語句++b=6,之後再開始判斷,再i++,再++b如此循環
當10>10時跳出循環,此時i=5

2.
while(1<=x<=2)這個是死循環

這樣的表達式為邏輯判斷,一步步的做出返回
先(1<=x)返回0或1
然後再判斷(1<=x)<=2,返回0或1

所以返回值永遠是1,所以是死循環

如果要寫成判斷,改為while(x>=1 &&x<=2)

⑽ 一道C語言題目

#include<stdio.h>

#include<stdlib.h>//頭文件

#include <time.h>//頭文件

int main()

{

int a[111],b[100],c[111],n,m,k=0,t,l=0,s;

scanf("%d%d",&n,&m);

srand((unsigned)time(NULL));//srand()就是給rand()提供種子

for(int i=0;i<50;i++)

{

a[i]=rand()%101;//對101取余;

}

for(int i=0;i<50;i++)

{

if(a[i]>n&&a[i]<=m)

{

c[l++]=a[i];//這個供冒泡排序用;

b[k++]=a[i];//這個供選擇排序用;

printf("%d ",a[i]);//未排序前的序列;

}

}

printf(" ");

for(int i=0;i<k-1;i++)//選擇排序

{

for(int j=i+1;j<k;j++)

{

if(b[i]>b[j])

{

t=b[i];

b[i]=b[j];

b[j]=t;

}

}

}

for(int i=0;i<l;i++)//冒泡排序

{

for(int j=0;j<l-i-1;j++)

{

if(c[j]>c[j+1])

{

s=c[j];

c[j]=c[j+1];

c[j+1]=s;

}

}

}

for(int i=0;i<k;i++)

{

printf("%d ",b[i]);

}

printf(" ");

for(int i=0;i<l;i++)

{

printf("%d ",c[i]);

}

return 0;

}

根據你給的信息,代碼大致就是這樣;可能有些瑕疵,你再根據原題修改一下;希望能幫到你,望採納;