c語言上機考試題
『壹』 c語言期末上機考試題答案徵集
//開發環境:BC++31
//第一題
#include <stdio.h>
#include <conio.h>
void main(void)
{
int i,j;
clrscr();
for(i=1;i<=9;i++)
{
for(j=1;j<=9;j++)
{
if(j==1)
{
printf("%2d ",i);
}
else
{
printf("%2d ",i*j);
}
}
printf("\n");
}
}
//第二題
#include <stdio.h>
#include <conio.h>
void main(void)
{
char str[6]={'A','B','C','D','E','Z'};
int i,j;
clrscr();
for(i=6;i>=1;i--)
{
for(j=i%6;j<=i%6+5;j++)
{
printf("%2c",str[j%6]);
}
printf("\n");
}
}
//第三題
#include<stdio.h>
#include<conio.h>
#include<string.h>
void circlewordif(char *p)
{
int l,i;
l=strlen(p);
for(i=0;i<=i/2;i++)
{
if(*p!=*(p+l-i-1))
{
break;
}
}
if(i<=i/2)
{
printf("NO!");
}
else
{
printf("YES!");
}
}
void main(void)
{
char str[100];
clrscr();
printf("Please input the string:");
gets(str);
circlewordif(str);
}
//第八題
#include <stdio.h>
#include <conio.h>
#include <math.h>
void main(void)
{
int num=0;
clrscr();
while((int)(sqrt(num+100))*(int)(sqrt(num+100))!=num+100||(int)(sqrt(num+168))*(int)(sqrt(num+168))!=num+168)
{
num++;
}
printf("The Answer is:%d\n",num);
printf("Please input the day:(1~31)");
scanf("%d",&num);
printf("The Answer is:%d\n",(num+4)%7);
}
//第九題
#include <stdio.h>
#include <conio.h>
void main(void)
{
int num[3][3];
int i,j,k;
clrscr();
for(i=0;i<3;i++)
{
printf("Please input line %d:",i);
scanf("%d,%d,%d",&num[i][0],&num[i][1],&num[i][2]);
}
printf("Before Change...\n");
for(i=0;i<3;i++)
{
for(j=0;j<3;j++)
{
printf("%2d ",num[i][j]);
}
printf("\n");
}
for(i=0;i<3;i++)
{
for(j=i+1;j<3;j++)
{
k=num[i][j];
num[i][j]=num[j][i];
num[j][i]=k;
}
}
printf("After Change...\n");
for(i=0;i<3;i++)
{
for(j=0;j<3;j++)
{
printf("%2d ",num[i][j]);
}
printf("\n");
}
}
//第十題
#include <stdio.h>
#include <conio.h>
void main(void)
{
int num[8];
int *max,*min;
int i,j;
clrscr();
printf("Please input 8 numbers:\n");
for(i=0;i<8;i++)
{
scanf("%d",&num[i]);
}
printf("Your numbers are...\n");
for(i=0;i<8;i++)
{
printf("%2d",num[i]);
}
max=num;min=num;
for(i=0;i<8;i++)
{
if(num[i]>*max)
{
max=&num[i];
}
if(num[i]<*min)
{
min=&num[i];
}
}
j=*min;*min=*max;*max=j;
printf("\nAfter Change...\n");
for(i=0;i<8;i++)
{
printf("%2d",num[i]);
}
}
//第十一題
#include <stdio.h>
#include <conio.h>
#include <stdlib.h>
#include <time.h>
void main(void)
{
int n,i,j,t,*max,num;
int count[4]={0};
clrscr();
randomize();
printf("Please input the people's number:\nn=");
scanf("%d",&n);
printf("Vote Start...\n");
for(i=0;i<n;i++)
{
t=random(4);
if(t<0||t>3)
{
i--;
continue;
}
count[t]++;
printf("%-2c",t+65);
}
printf("\nVote Complete...\n");
for(i=0;i<4;i++)
{
max=count;num=0;
for(j=1;j<4;j++)
{
if(count[j]>*max)
{
max=&count[j];
num=j;
}
}
printf("%d.%c---->%d\n",i+1,num+65,*max);
*max=0;
}
}
『貳』 9月計算機二級《C語言》上機考題及答案
1、以下選項中屬於C語言的數據類型是()。
A. 復合型
B. 雙精度型
C. 邏輯型
D. 集合型
2、以下說法中正確的是()。
A. C語言程序總是從第一個的函數開始執行
B. 在C語言程序中,要調用的函數必須在main()函數中定義
C. C語言程序總是從main()函數開始執行
D. C語言程序中的main()函數必須放在程序的開始部分
3、選出下列標識符中不是合法的標識符的是()。
A. hot_do
B. cat1
C. _pri
D. 2ab
4、下列描述中不正確的是()。
A、字元型數組中可能存放字元串。
B、可以對字元型數組進行整體輸入、輸出。
C、可以對整型數組進行整體輸入、輸出。
D、 不能在賦值語句中通過賦值運算符“=”對字元型數組進行整體賦值。
5、若已定義:int a[9], *p=a;並在以後的語句中未改變p的值,不能表示a[1]地址的表達式為()。
A. p+1
B. a+1
C. a++
D. ++p
6、設有如下定義: int x=10,y=3,z; 則語句printf("%d ",z=(x%y,x/y)); 的輸出結果是()。
A. 1
B. 0
C. 4
D. 3
7、定義如下變數和數組: int i, x[3][3]={1,2,3,4,5,6,7,8,9};則下面語句for(i=0;i<3;i++) printf("%d",x[i][2-i]); 的輸出結果是()
A. 1 5 9
B. 1 4 7
C. 3 5 7
D. 3 6 9
8、讀出以下語句的輸出結果是()。
int x=10,y=10;
printf(“%d %d ”,x--,--y);
A. 10 10
B. 9 9
C. 9 10
D. 10 9
9、兩次運行下面的程序,如果從鍵盤上分別輸入6和3,則輸出結果是()。
if(x++>5) printf("%d",x);
else printf("%d ",x - -);
A. 7和5
B. 6和3
C. 7和4
D. 6和4
10、設有如下定義:char *aa[2]={"abcd","ABCD"};則以下說法中正確的是()。
A)aa數組成元素的值分別是"abcd"和ABCD"
B)aa是指針變數,它指向含有兩個數組元素的字元型一維數組
C)aa數組的兩個元素分別存放的是含有4個字元的一維字元數組的`首地址
D)aa數組的兩個元素中各自存放了字元’a’和’A’的地址
11、以下語句的輸出結果是()。
int a=-1,b=4,k;
k=(+ +a<0)&&!(b - -<=0);
printf("%d,%d,%d ",k,a,b);
A. 1,0,4
B. 1,0,3
C. 0,0,3
D. 0,0,4
12、下列程序的輸出結果是()。
char *p1="abcd", *p2="ABCD", str[50]="xyz";
strcpy(str+2,strcat(p1+2,p2+1));
printf("%s",str);
A. xyabcAB
B. abcABz
C. ABabcz
D. xycdBCD
13、執行下面的程序後,a的值是()。
#define SQR(X) X*X
main()
{ int a=10,k=2,m=1;
a/=SQR(k+m)/SQR(k+m);
printf("%d ",a); }
A. 10
B. 1
C. 9
D. 0
14、設A為存放(短)整型的一維數組,如果A的首地址為P,那麼A中第i 個元素的地址為()。
A.P+i*2
B. P+(i-1)*2
C. P+(i-1)
D. P+i
15、下列程序執行後輸出的結果是()。
int d=1;
fun (int p)
{ int d=5;
d + =p + +;
printf("%d,",d); }
main()
{ int a=3;
fun(a);
d + = a + +;
printf("%d ",d); }
A. 8, 4
B. 9, 6
C. 9, 4
D. 8, 5
16、表達式:10!=9的值是()。
A. true
B. 非零值
C. 0
D. 1
17、若有說明: int i,j=7, *p=&i;, 則與i=j; 等價的語句是()。
A. i= *p;
B. *p=*&j;
C. i=&j;
D. i=* *p;
18、不能把字元串:Hello!賦給數組b的語句是()。
A. char b[10]={’H’,’e’,’l’,’l’,’o’,’!’};
B. char b[10]; b="Hello!";
C. char b[10]; strcpy(b,"Hello!");
D.char b[10]="Hello!";
19、在C程序中有如下語句:char *func(int x,int y); 它是()。
A. 對函數func的定義。
B. 對函數func的調用。
C.對函數func的原型說明。
D. 不合法的。
20、以下程序的輸出結果是()。
char str[15]=”hello!”;
printf(“%d ”,strlen(str));
A. 15
B. 14
C. 7
D. 6
參考答案:
1、B 2、C 3、D 4、C 5、C 6、D 7、C 8、D 9、C 10、D
11、D 12、D 13、B 14、B 15、A 16、D 17、B 18、B 19、C 20、D
『叄』 二級C語言上機考試有題庫嘛
上機考試試題
1、填空題
下列給定程序中,函數fun()的作用是:將字元串tt中的大寫字母都改為對應的小寫字母,其他字元不變。例如,若輸入「Ab,cD」,則輸出「ab,cd」。
試題程序:
# include <stdio.h>
# include <stdio.h>
# include <conio.h>
Char【1】fun(char tt[])
{
int i;
for (i=0;tt[i];i++)
{
if ((tt[i]>=』A』)&&(tt[i]<=【2】))
tt[i]+=32;
}
return(tt);
}
main()
{
char tt[81];
printf (「\nPlease enter a string:」);
gets (tt);
printf (「\nThe result string is: \n%s」,fun(【3】));
}
2、改錯題
下列給定程序中,函數fun()的功能是逐個比較a,b兩個字元串對應位置中的字元,把ASCII值小或相等的字元依次存放到c數組中,形成一個新的字元串。
例如:a中的字元串為fshADfg,b中的字元為sdAEdi,則c中的字元串應為fdAADf。
請改正程序中的錯誤,使它能得到正確的結果。
注意:不要改動main函數,不得增行或刪行,也不得更改程序的結構。
試題程序:
# include <stdio.h>
# include <string.h>
void fun(char *p,char *q,char *c)
{ int k=0;
while(*p‖*q)
/***************found******************/
{ if (*p<=*q)
c[k]=*q;
else c[k]=*p;
if (*p) p++;
if(*q) q++;
/***************found*******************/
k++
}
}
main()
( char a[10]=」fshADfg」,b[10]=」sdAEdi」,c[80]={『\0』};
fun(a,b,c);
printf(「The string a:」); puts(a);
printf(「The string b:」); puts(b);
printf(「The string c:」); puts(c);
}
3、編程題
請編寫函數fun,其功能是將兩個兩位數的正整數a、b合並形成一個整數放在c中。合並的方式是:將a數的十位和個位數依次放在c數的十位和個位數依次放在c數的百位和千位上。
例如,當a=16,b=35,調用該函數後,c=5361。
注意:部分源程序給出如下。
請勿改動主函數main和其他函數中的任何內容,僅在函數fun的花括弧中填入所編寫的若干語名。
試題程序:
# include<stdio.h>
void fun(int a,int b,long *c)
{
}
main()
{
int a,b;
long c;
clrscr();
printf(「Input a,b;」);
scanf(「%d%d」,&a&b);
fun(a,b,&c);
printf(「The result is:%d\n」,c);
}
『肆』 C語言程序設計期末考試上機題,求各路大神幫忙解決啊!!緊急緊急啊!!!
//採用的方法是最小提取法
#include "stdio.h"
void main()
{
int a[10]={9,8,7,6,1,2,3,4,5,6};
sort(a); //調用sort函數
printf("排序後數組a的各個元素:")
for(i=0;i<10;i++)
{
printf("%5d",a[i]);
}
}
void sort(int a[10])
{
int min;
int t;
for(i=0;i<10;i++)
{
min=i;
for(j=i+1;j<9;j++)
{
if(a[min]>a[j]) min=j;
}
//將最小數與第i個元素交換
if(i!=min)
{
t=a[i];
a[i]=a[min];
a[min]=t;
}
}
}