編程試題及
Ⅰ c語言試題,求答案
一、選擇題(共10個)
③ 2.③ 3.① 4.④ 5.③ 6.① 7.④ 8.① 9.① 10.①
二、填空題(共7個)
;
-32768 ~ 32767(16位機)
0
下劃線 下劃線
double a=0.618
11、6
三、判斷題(共5個)
X
√
√
√
√
四、閱讀以下C語言程序,以下程序的程序輸出的結果是2,1。
五、有兩個浮點數a=5.2,b=3.1,計算並輸出它們的和、差、積、商。
//#include "stdafx.h"//vc++6.0加上這一行.
#include "stdio.h"//
void main(void){
double a=5.2,b=3.1;
printf("a + b = %f a - b = %f a x b = %f a÷ b = %f ",a+b,a-b,a*b,a/b);
}
Ⅱ C語言程序設計試題
1.請編程序列印出一張乘法「九九表」。表的樣式如下:
1 2 3 4 5 6 7 8 9
2 4 6 8 10 12 14 16 18
3 6 9 12 15 18 21 24 27
4 8 12 16 20 24 28 32 36
5 10 15 20 25 30 35 40 45
6 12 18 24 30 36 42 48 54
7 14 21 28 35 42 49 56 63
8 16 24 32 40 48 56 64 72
9 18 27 36 45 54 63 72 81
2.編程序把從鍵盤輸入的英文短文作為一個字元串(長度不超過30),把短文
中每個單詞的首字母改成大寫,(原輸入可以是大寫),輸出轉換後的字元串。
3.查找長度為10的整型數組,列印其中整數5出現的次數,及每個整數5對應的數組元下標,列印的結果用逗號隔開。若數組中沒有5,也要報告「ther is not number 5」。(數組各元從鍵盤輸入)
4.請用循環結構編程列印出如下字元矩陣
A B C D E Z
Z A B C D E
E Z A B C D
D E Z A B C
C D E Z A B
B C D E Z A
5.請編程計算並輸出整數矩陣周邊各元之和,矩陣的維數為7×4。(矩陣各元從
鍵盤輸入)
6.編一個函數void merger(int a[], int b[], int c[]), 其功能是歸並。把兩個遞增的整型數組a和b, 歸並成遞增數組c。再編一個主函數,輸入兩個遞增數組(一個長度為5,另一個長度為9),調用merger函數,列印歸並後的結果。
7.編程列印所有各位數的立方和等於該整數的三位數。
8.編程從鍵盤輸入一字元串存放在字元型數組s中,將s中的子字元串」shu」都找到,並輸出各子串起始的下標位置。若s中不存在」shu」,也要報告「there is not string shu」。設字元串s有效長度小於40。
9.編程將一個正整數(小於1000)表示成1和質因子的連乘積。如:輸入45,輸出45=1*3*3*5。
10.編程計算方程 的正整數解,並輸出。
11.中國有句俗語「三天打魚兩天曬網」,某人從03年1月1日起三天打魚兩天曬網,編程計算某月某日,他在打魚還是在曬網。某月某日從鍵盤輸入,打魚則輸出1,曬網則輸出0。
12.從鍵盤輸入10名學生的成績,顯示與平均成績最接近的三個成績。
程序設計基礎(C語言)水平測試考核(參考答案)
1.
/*multiply-table */
main()
{ int i,j;
for(i=1;i<10;i++)
{ for(j=1;j<10;j++) printf("%4d",i*j);
printf("\n");
}
}
2.
/*capitalization of prefix*/
main()
{ char a[80];
int i;
gets(a);
for(i=0;a[i];i++)
if((i==0||a[i-1]==' ')&&(a[i]>='a'&&a[i]<='z')) a[i]=a[i]-32;
puts(a);
}
3.
/*search number 10*/
main()
{ int a[10],i,c=0;
for(i=0;i<10;i++) scanf("%d",&a[i]);
for(i=0;i<10;i++)
if(a[i]==5)
{ c++; printf("%d,",i);
}
if(c==0) printf("\nThere is not number 5.\n");
else printf("%d\n",c);
}
4.
/*characters matrix*/
#define N 6
void gosub(char a[],int n)
{ char t;
int i;
t=a[n];
for(i=n;i>0;i--)
a[i]=a[i-1];
a[0]=t;
}
Ⅲ c語言程序設計試題
c語言程序設計試題
闡述編程語言的概念,學習進制轉換以及程序的基本運行原理,讓大家先有一個整體上的認識。下面是我整理的關於c語言程序設計基礎知識,希望大家認真閱讀!
【程序1】
題目:有1、2、3、4個數字,能組成多少個互不相同且無重復數字的三位數?都是多少?
1.程序分析:可填在百位、十位、個位的數字都是1、2、3、4。組成所有的排列後再去
掉不滿足條件的排列。
2.程序源代碼:
代碼如下:
#include "stdio.h"
#include "conio.h"
main()
{
int i,j,k;
printf(" ");
for(i=1;i<5;i++) /*以下為三重循環*/
for(j=1;j<5;j++)
for (k=1;k<5;k++)
{
if (i!=k&&i!=j&&j!=k) /*確保i、j、k三位互不相同*/
printf("%d,%d,%d ",i,j,k);
}
getch();
}
【程序2】
題目:企業發放的獎金根據利潤提成。利潤(I)低於或等於10萬元時,獎金可提10%;利潤高
於10萬元,低於20萬元時,低於10萬元的部分按10%提成,高於10萬元的部分,可可提
成7.5%;20萬到40萬之間時,高於20萬元的部分,可提成5%;40萬到60萬之間時高於
40萬元的部分,可提成3%;60萬到100萬之間時,高於60萬元的部分,可提成1.5%,高於
100萬元時,超過100萬元的部分按1%提成,從鍵盤輸入當月利潤I,求應發放獎金總數?
1.程序分析:請利用數軸來分界,定位。注意定義時需把獎金定義成長整型。
2.程序源代碼:
代碼如下:
#include "stdio.h"
#include "conio.h"
main()
{
long int i;
int bonus1,bonus2,bonus4,bonus6,bonus10,bonus;
scanf("%ld",&i);
bonus1=100000*0. 1;
bonus2=bonus1+100000*0.75;
bonus4=bonus2+200000*0.5;
bonus6=bonus4+200000*0.3;
bonus10=bonus6+400000*0.15;
if(i<=100000)
bonus=i*0.1;
else if(i<=200000)
bonus=bonus1+(i-100000)*0.075;
else if(i<=400000)
bonus=bonus2+(i-200000)*0.05;
else if(i<=600000)
bonus=bonus4+(i-400000)*0.03;
else if(i<=1000000)
bonus=bonus6+(i-600000)*0.015;
else
bonus=bonus10+(i-1000000)*0.01;
printf("bonus=%d",bonus);
getch();
}
【程序3】
題目:一個整數,它加上100後是一個完全平方數,再加上168又是一個完全平方數,請問該數是多少?
1.程序分析:在10萬以內判斷,先將該數加上100後再開方,再將該數加上268後再開方,如果開方後
的結果滿足如下條件,即是結果。請看具體分析:
2.程序源代碼:
代碼如下:
#include "math.h"
#include "stdio.h"
#include "conio.h"
main()
{
long int i,x,y,z;
for (i=1;i<100000;i++)
{
x=sqrt(i+100); /*x為加上100後開方後的結果*/
y=sqrt(i+268); /*y為再加上168後開方後的結果*/
if(x*x==i+100&&y*y==i+268) /*如果一個數的平方根的平方等於該數,這說明此數是完全平方數*/
printf(" %ld ",i);
}
getch();
}
【程序4】
題目:輸入某年某月某日,判斷這一天是這一年的第幾天?
1.程序分析:以3月5日為例,應該先把前兩個月的加起來,然後再加上5天即本年的.第幾天,特殊
情況,閏年且輸入月份大於3時需考慮多加一天。
2.程序源代碼:
代碼如下:
#include "stdio.h"
#include "conio.h"
main()
{
int day,month,year,sum,leap;
printf(" please input year,month,day ");
scanf("%d,%d,%d",&year,&month,&day);
switch(month) /*先計算某月以前月份的總天數*/
{
case 1:sum=0;break;
case 2:sum=31;break;
case 3:sum=59;break;
case 4:sum=90;break;
case 5:sum=120;break;
case 6:sum=151;break;
case 7:sum=181;break;
case 8:sum=212;break;
case 9:sum=243;break;
case 10:sum=273;break;
case 11:sum=304;break;
case 12:sum=334;break;
default:printf("data error");break;
}
sum=sum+day; /*再加上某天的天數*/
if(year%400==0||(year%4==0&&year%100!=0)) /*判斷是不是閏年*/
leap=1;
else
leap=0;
if(leap==1&&month>2) /*如果是閏年且月份大於2,總天數應該加一天*/
sum++;
printf("It is the %dth day.",sum);
getch();
}
【程序5】
題目:輸入三個整數x,y,z,請把這三個數由小到大輸出。
1.程序分析:我們想辦法把最小的數放到x上,先將x與y進行比較,如果x>y則將x與y的值進行交換,
然後再用x與z進行比較,如果x>z則將x與z的值進行交換,這樣能使x最小。
2.程序源代碼:
代碼如下:
#include "stdio.h"
#include "conio.h"
main()
{
int x,y,z,t;
scanf("%d%d%d",&x,&y,&z);
if (x>y)
{t=x;x=y;y=t;} /*交換x,y的值*/
if(x>z)
{t=z;z=x;x=t;} /*交換x,z的值*/
if(y>z)
{t=y;y=z;z=t;} /*交換z,y的值*/
printf("small to big: %d %d %d ",x,y,z);
getch();
}
【程序6】
題目:用*號輸出字母C的圖案。
1.程序分析:可先用'*'號在紙上寫出字母C,再分行輸出。
2.程序源代碼:
代碼如下:
#include "stdio.h"
#include "conio.h"
main()
{
printf("Hello C-world! ");
printf(" **** ");
printf(" * ");
printf(" * ");
printf(" **** ");
getch();
}
【程序7】
題目:輸出特殊圖案,請在c環境中運行,看一看,Very Beautiful!
1.程序分析:字元共有256個。不同字元,圖形不一樣。
2.程序源代碼:
代碼如下:
#include "stdio.h"
#include "conio.h"
main()
{
char a=176,b=219;
printf("%c%c%c%c%c ",b,a,a,a,b);
printf("%c%c%c%c%c ",a,b,a,b,a);
printf("%c%c%c%c%c ",a,a,b,a,a);
printf("%c%c%c%c%c ",a,b,a,b,a);
printf("%c%c%c%c%c ",b,a,a,a,b);
getch();
}
【程序8】
題目:輸出9*9口訣。
1.程序分析:分行與列考慮,共9行9列,i控制行,j控制列。
2.程序源代碼:
代碼如下:
#include "stdio.h"
#include "conio.h"
main()
{
int i,j,result;
printf(" ");
for (i=1;i<10;i++)
{
for(j=1;j<10;j++)
{
result=i*j;
printf("%d*%d=%-3d",i,j,result); /*-3d表示左對齊,佔3位*/
}
printf(" "); /*每一行後換行*/
}
getch();
}
【程序9】
題目:要求輸出國際象棋棋盤。
1.程序分析:用i控制行,j來控制列,根據i+j的和的變化來控制輸出黑方格,還是白方格。
2.程序源代碼:
代碼如下:
#include "stdio.h"
#include "conio.h"
main()
{
int i,j;
for(i=0;i<8;i++)
{
for(j=0;j<8;j++)
if((i+j)%2==0)
printf("%c%c",219,219);
else
printf(" ");
printf(" ");
}
getch();
}
;Ⅳ 誰能提供點C語言的試題給我,最好能有答案的,非常感謝!
以下是一些 C 語言的試題,每個試題都附帶有答案。希望能夠幫助到你。
1、編寫一個程序,從命令行參數中讀取兩個整數,計算它們的和並輸出結果。
答案:
#include <stdio.h>
int main(int argc, char *argv[]) {
if (argc != 3) {
printf("Usage: %s <int1> <int2>
", argv[0]);
return 1;
}
int x = atoi(argv[1]);
int y = atoi(argv[2]);
printf("%d + %d = %d
", x, y, x + y);
return 0;
}
2、編寫一個函數,接受兩個參數 a 和 b,返回它們的最大公約數。
答案:
int gcd(int a, int b) {
if (b == 0) {
return a;
} else {
return gcd(b, a % b);
}
}
3、編寫一個程序,從標准輸入中讀取一個字元串,將其中的大寫字母轉換為小寫字母,並輸出轉換後的字元串。
答案:
#include <stdio.h>
#include <ctype.h>
int main() {
char c;
while ((c = getchar()) != EOF) {
putchar(tolower(c));
}
return 0;
}
4、編寫一個程序,從標准輸入中讀取一個字元串,判斷其中是否有重復的字元,並輸出結果。
答案:
#include <stdio.h>
#include <stdbool.h>
bool has_plicate_chars(const char *str) {
bool seen[256] = { false };
while (*str != '