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

c語言入門測試題

發布時間: 2022-10-01 19:27:31

『壹』 初學問幾道c語言數組的練習題

/*1,將一個一位數組a[10]中的元素值按逆序重新存放.假定數組中原來元素順序為:1,3,5,7,9,8,6,4,2,0,按逆序重新存放後元素的值位:0,2,4,6,8,9,7,5,3,1。要求:在程序中將數組初值初始化,輸出逆序重新存放後元素的值。*/
#include "stdafx.h"

int main(int argc,char* argv[])
{
int a[10]={1,3,5,7,9,8,6,4,2,0};//初始化。
int b[10];
printf("順序的數據:\n");
for(int j=0;j<10;j++)
{
printf("%d",a[j]);
printf(" ");
}
for(int i=0;i<10;i++)
{
b[10-1-i]=a[i];
}

printf("\n逆序後的數據:\n");
for(int n=0;n<10;n++)
{
printf("%d",b[n]);
printf(" ");
}

return 0;
}

/*2,有整型數組a[20],首先輸入一組非0整數(少於20個)到該數組中,以輸入0值為結束。編寫4個函數分別求該數組中元素的1,正數個數,2,正數平均值,3,負數個數,4,負數平均值,最後在主函數中輸入4個求出的值。提示:將數組定義為:int a[20],實際只用數組的前若干個元素。
*/

#include "stdafx.h"

int fun1(int *ar,int num)
{
int au=0;
for(int i=0;i<num;i++)
{
if(ar[i]>0)
{
au++;
}
}
printf("正數個數:%d\n",au);
return au;
}
int fun2(int *ar,int num)
{
int au=0;
for(int i=0;i<num;i++)
{
if(ar[i]>0)
{
au+=ar[i];
}
}
au=au/fun1(ar,num);
printf("正數平均值:%d\n",au);

return au;

}

int fun3(int *ar,int num)
{
int au=0;
for(int i=0;i<num;i++)
{
if(ar[i]<0)
{
au++;
}
}
printf("負數個數:%d\n",au);
return au;
}
int fun4(int *ar,int num)
{
int au=0;
for(int i=0;i<num;i++)
{
if(ar[i]<0)
{
au+=ar[i];
}
}
au=au/fun1(ar,num);
printf("負數平均值:%d\n",au);

return au;

}

int main(int argc,char* argv[])
{
int a[20];
int num,date;
printf("請輸入數據:\n");
for(num=0;num<20;num++)
{
scanf("%d",&date);
if(date==0)
{
break;
}
a[num]=date;
}
fun2(a,num);
fun4(a,num);
return 0;
}

/*3,任意輸入一個4位數,存入變數i,將該數的每一位上的數字,分解到整型數組a[]中,用選擇法將a[]數組中的數排成升序,並輸入a[]數組的內容。要求選擇法排序在函數中完成。
如:int i,a[4];輸入i=8362
分解後:a[0]=2,a[1]=6,a[2]=3,a[3]=8
排序後:a[0]=2,a[1]=3,a[2]=6,a[3]=8
運行時,輸入8362
輸出2368 */
#include "stdafx.h"

void fun(int *a,int num)
{
for(int i=0;i<num-1;i++)
for(int j=i+1;j<num;j++)
{
if(a[i]>a[j])
{
int date=a[i];
a[i]=a[j];
a[j]=date;
}
}
}

int main(int argc,char* argv[])
{
int i=0;
int a[4];
printf("請輸入四位整數:\n");
scanf("%d",&i);
for(int s=1000,l=0;l<4;s/=10,l++)
{
a[l]=i/s;
i%=s;
}
fun(a,4);
for(int n=0;n<4;n++)
{
printf("%d",a[n]);
}

return 0;
}

,4,給定2維數組如下,求該數組2條對角線元素之和
a=3 6 4 6
8 3 1 3
4 7 1 2
2 9 5 3
要求:1,在主函數中實現:數組賦初值及求和結果的輸出 */
#include "stdafx.h"

int main(int argc,char* argv[])
{
int a[4][4]={{3,6,4,6},{8,3,1,3},{4,7,1,2},{2,9,5,3}};
int num=0;

for(int i=0,j=0;i<4;i++,j++)
{
num+=a[i][j];
}

printf("第一對角線之和:",num);
printf("%d\n",num);

for(i=4-1,j=4-1;i>0;i--,j--)
{
num+=a[i][j];
}

printf("第二對角線之和:",num);
printf("%d\n",num);
return 0;
}

/*6,編寫一個函數viod my_strcpy(char s1[],char s2[]),將s2中的字元串拷貝到數組s1中去。要求:
1,不允許使用C語言的庫函數strcpy()
2,在主函數中輸入2個字元串,調用函數my_strcpy()進行字元串拷貝,並在主函數中輸入字元串s1,s2內容。
注意:應該將字元數組s1[]定義足夠長,使之能存放連接後的字元串 */
#include "stdafx.h"

void str(char *str1,char *str2)
{
while(*str2)
{
*str1++=*str2++;
}
}

int main(int argc,char* argv[])
{
char st1[]="test str";
char st2[20]="";

str(st2,st1);
printf("%s\n",st2);
return 0;
}

/*7,輸入2個字元串,將對應字母交叉組成第三個字元串,最後輸入第三個字元串。例如輸入的2個字元串分別是「abcd」和「1234」,則合並後的字元串是「a1b2c3d4」。若2個字元串的長度不等,則其中的一個字元串多餘的部分放在結果字元串的尾部,如2個字元串分別是「banana」和「12」,則合並後的字元串是「b1a2nana」
要求:第一個字元串的第一個字母總是結果串的第一個字母。
*/
#include "stdafx.h"

void combinstr(char *str1,char *str2,char *str3)
{
for(;*str1||*str2;)
{
if(*str1)
{
*str3++=*str1++;
}
if(*str2)
{
*str3++=*str2++;
}
}
}

int main(int argc,char* argv[])
{
char st1[]="abcdefghi";
char st2[]="1234";
char st3[64]="";

combinstr(st1,st2,st3);
printf("%s\n",st3);
return 0;
}
只有第五個沒有了,你想怎麼示範?
算了隨便弄個可以看效果的了:/*5,已知5個學生的3門成績
COURSE1 COURSE2 COURSE3 AVER
STUD1 76 80 90
STUD2 90 65 77
STUD3 63 55 70
STUD4 90 92 97
STUD5 73 69 82
要求:1,求出並輸入每個學生的平均成績
2,求出並輸入每門課的平均成績

*/
#include "stdafx.h"

int main(int argc,char* argv[])
{
float stud[5][3]={{76,80,90},{90,65,77},{63,55,70},{90,92,97},{73,69,82}};
float num=0;
for(int i=0;i<5;i++)
{
for(int j=0;j<3;j++)
{
num+=stud[i][j];
}
num/=3;
printf("\n第%d個學生的平均成績:\n",i+1);
printf("%f\n",num);
num=0;

}

for(i=0;i<3;i++)
{
for(int j=0;j<5;j++)
{
num+=stud[i][j];
}
num/=5;
printf("\n第%d科的平均成績:\n",i+1);
printf("%f\n",num);
num=0;
}

return 0;
}

『貳』 C語言基礎題目練習(幫忙做一下唄 ,我做了 也不知道那裡錯了 ……所以需要答案幫我自己改正一下)謝謝啊

看來我真是閑的蛋疼了。。。
1.c 2d 3a 4b 沒什麼問題
5.應該是4+4+8=16,沒有答案。
判斷沒問題。
函數
1.d
2要是說的是函數的聲明的話就是c,定義的話明顯都不對
3d 4a 5c 6a 7d 8c
最後一個不會

『叄』 c語言初學者編程題

#include<stdio.h>
#include<math.h>
int main(void)
{
double a, b, c, area, x, y, z;

printf("please input the triange sides:");
scanf("%lf%lf%lf",&a,&b,&c);
x = pow(a,2) + pow(b,2) - pow(c,2);
y = pow(b,2) + pow(c,2) - pow(a,2);
z = pow(a,2) + pow(c,2) - pow(b,2);
if (x>0&&y>0&&z>0)
{
area = pow((a + b + c)*(b + c)*(a + c)*(a + b),0.5);
printf("%.2f", &area);
}
else
{
printf("data error");
}
return 0;
}
我將你的答案修改了下,可以運行成功了。你試試。

『肆』 C語言初級測試題

做這些題有什麼意思,直接動手編不就得了。

『伍』 C語言基礎的一道選擇題,請大俠解釋下,謝謝

似乎是D,i=j+1=k,k在這里是個左值,不能放在等號右邊。
而C是可以正常運行的,已經通過測試了
左值,就是必須在等號左邊的值,典型的就是,賦值的時候,變數必須在左邊,例如
i=1不能寫成1=i
就這個意思

『陸』 一道c語言的練習題

#include "stdio.h"

int Judge(const char *a,const char *b){

int s,n;

for(s=n=0;n<10;s+=a[n]==b[n++]);

return s;

}

int main(int argc,char *argv[]){

const char std[]="ABCDBBCBBC";

char ans[10],i,t;

printf("Please enter your answer(orderly sequence of ABCD)... ");

while(1){

if(scanf("%10s",ans)==1)

for(i=0;i<10;i++)

if(ans[i]!='A' && ans[i]!='B' && ans[i]!='C' && ans[i]!='D')

break;

if(i>=10)

break;

printf("Input error, redo: Please enter your answer(orderly sequence of ABCD)... ");

}

printf(" Correct answer: ");

for(t=Judge(std,ans),i=0;i<10;i++)

if(std[i]==ans[i])

printf("%2d",i+1);

printf(" TOTAL: %d ",10*t);

return 0;

}

代碼格式和運行樣例圖片:

『柒』 c語言測試題目及答案

B.因為在計算1/2時參與運算的分子分母都是整型,將會得到整型數據0而不是浮點型數據0.5,而其他選項在做除法時,參與計算的分子或分母至少一方是float型,可以得到正確結果

『捌』 C語言測試題(很容易的!!)(在線等!!!)

1.10化成二進制形式為___
答案:1010

2.二進制的確111是十進制的___
答案:7

3.運行C語言的快捷是__加__
答案:ctrl + F5

4.程序結構有___和___和___
答案:順序,分支,循環
5.一個int型數據在內存中占__個位元組,一個float型數據在內存中占__個位元組
答案:2 4

6.編寫程序輸出
******************
very good
******************
答案:
#include <stdio.h>
int main()
{
printf("******************\nvery good\n******************\n");
return 0;
}

7.編寫程序輸出圓的半徑,輸出圓的面積
答案:
#include<stdio.h>
int main()
{
float r,s;
scanf("%f",&r);
printf("%f\n",3.14*r*r);
return 0;
}

『玖』 C語言考試題

//word編輯,大小寫可能有問題
一、填空題
1、一個C語言程序的語句至少應包含一個__函數____。
2、C語言源程序文件的擴展名是__ .C ____,經過編譯、連接後,生成文件的擴展名是__編譯後為.obj 連接後為.exe ____。
3、結構化程序由 順序 、___選擇___和___循環___三種基本結構組成。
4、C語言的執行是從__main()函數____開始執行的。
5、C源程序的語句分隔符是___;___。
6、在C語言中,用關鍵字__float____定義單精度實型變數。
7、表達式S=12應當讀做「__把12賦值給變數S____」。
8、C語言源程序的基本單位是___函數___。
9、設int x=9,y=8;表達式x-=y+1的結果是___0___。
10、若a為整型變數,a=12,則表達式:a * =2+3的值___60___。
11、調用C語言對輸入輸出處理的庫函數時,在# include命令行中應包含的頭文件是__stdio.h___。
12、表達式9%5的結果是_4____。
13、若a為整型變數,a=12,則表達式:a+=4的值___16___。
14、在C語言中,要求運算數必須是整型的運算符是___%___。
15、在C語言中,用___非0___表示邏輯「真」值。
16、表達式10/3的結果是__3____。
17、通常一個位元組包含___8___個二進制位。
18、 假設所有變數均為整型,a=2,b=5,b++則表達式a+b的值是___8___。
19、在C語言中,最基本的數據類型只有四種,它們分別是:___int___、___char___、___float___和double。
20、一個C程序有且僅有一個__main()____函數。
21、若a為整型變數,a=12,則表達式:a-=2的值__10____。
22、在C語言中,有三種邏輯運算符,它們分別是:___!___、___&&___、___||___。
23、在C語言中,字元輸入函數和字元輸出函數分別是:__getchar()____和___putchar()___。
24、C程序開發的四個步驟是___編輯___、___編譯___、___鏈接___和執行。
25、C程序的結構分別是:順序結構、__選擇結構____、__循環結構____。
26、if語句中的表達式可以是關系表達式、__邏輯表達式____、___條件表達式___。
27、__?:____是C語言中惟一一個三元運算符。
28、C語言提供的預處理命令主要包括如下三種:宏定義、__文件包含____、___條件編譯___。

二、閱讀程序,寫出下列程序運行結果。
1、2

2、K
3、a 97
4、無結果
三、編寫程序
1、編寫一個C程序,輸入a、b、c 3個數,輸出其中最大的數。
#include<stdio.h>
Void main()
{
Int a,b,c;
Printf("請輸入三個數");
Scanf(%d%d%d,&a,&b,&c);
If(a<b)
A=b;
If(a<c)
A=c;
Printf("最大的數:%d",a);
}

求1—50的之和。
#include<stdio.h>
Void mian()
{
Int sum=0,i;
For(i=1;i<=50;i++)
Sum+=i;
Printf("1-50之和為:%d",sum);
}
從鍵盤輸入一個大寫字母,要求改用小寫字母輸出。
#include<stdio.h>
Void mian()
{
Char c;
Printf("請輸入一個字母");
Scanf("%c".&c);
Printf("它的小寫字母為%c",c+32);
}

利用while語句,計算1+1/2+1/4+…+1/100的值,並顯示出來。
#include<stdio.h>
Void mian()
{
Float sum=0,temp;
Int i =1;
While(i<=100)
{
Temp=1/i;
Sum+=temp;
I++
}
Printf("結果為%d",sum);
}

輸入兩個整數,輸出其中的大數。
#include<stdio.h>
Void mian()
{
Int a,b;
Printf("請輸入兩個數");
Scanf("%d%d".&a,&b);
Printf("大數是:%d"a>b?a:b);
}

6、利用while語句,計算1+1/3+1/5+…+1/99的值,並顯示出來。
#include<stdio.h>
Void mian()
{
Int i =1;
Float sum=0,temp=0;
While(i<=99)
{
Temp =1/i;
Sum+=temp;
I=i+2;
}
Printf("結果為: %f",sum),
}

『拾』 一道很簡單的C語言入門練習題,望高手指點

三道題是考優先順序和結合方向的問題:
(1)先做加法,(a+a)=24,但是a=12不變;然後a/=24,a=0.5,因為a是整型變數,故答案為0
(2)先做括弧里的(n%=2)=1;然後a%=1,答案是0
(3)一般編譯系統(像TuborC)的復合賦值運算符的結合性是從右至左:先a*=a,得a=144;然後a-=a得a=0;最後a+=a,得a=0