c語言考研題庫
A. c語言題庫
給我郵箱 發給你 是C語言題庫 但不是上海海事大學的
B. C語言題庫訓練
#include<stdio.h>
int calc(int num){
int i,count=0;
for(i=1;i<=num;i++){
if(i%5==0||i%5==4){
count++;
}
}
return count;
}
void main(){
int num[4],i;
printf("Sample Input\n");
for(i=0;i<4;i++){
scanf("%d",&num[i]);
}
printf("\nSample Output\n");
for(i=0;i<4;i++){
printf("%d\n",calc(num[i]));
}
}
C. 一個c語言考研復試題,求教
這其實是個數獨,考查的是人工智慧知識,應該用圖的深度優先遍歷(DFS)外加heuristic search,遞歸實現,跟四染色類似。
void find(int arr[][], int i, int j){
if(i==3&&j==3){
report(arr);
return;
}
int in, jn;
jn = (j+1)%4;
if(j+1==4) in = i+1;
else in = i;
if(arr[i][j]!='?') find(arr, in, jn); /*遞歸調用*/
else{
if(isLegal(arr, i, j, 1)==1){ arr[i][j] = 1 find(arr, in, jn); } /*遞歸調用*/
if(isLegal(arr, i, j, 2)==1){ arr[i][j] = 2 find(arr, in, jn); }
if(isLegal(arr, i, j, 3)==1){ arr[i][j] = 3 find(arr, in, jn); }
if(isLegal(arr, i, j, 4)==1){ arr[i][j] = 4 find(arr, in, jn); }
}
}
int isLegal(int arr[][], int i, int j, int val){
int m, n;
for(m = 0; m < 4; m++)
if(arr[m][j]==val) return 0;
for(n = 0; n < 4; n++)
if(arr[i][n]==val) return 0;
if(i!=0&&j!=0)
if(arr[i-1][j-1]==val||arr[i-1][j]==val||arr[i][j-1]==val) return 0;
if(i!=3&&j!=3)
if(arr[i+1][j]==val||arr[i+1][j+1]==val||arr[i][j+1]==val) return 0;
if(i!=0&&j!=3)
if(arr[i-1][j]==val||arr[i-1][j+1]==val||arr[i][j+1]==val) return 0;
if(i!=3&&j!=0)
if(arr[i+1][j]==val||arr[i+1][j-1]==val||arr[i][j-1]==val) return 0;
return 1;
}
void report(int arr[][]){
int i, j;
for(i=0;i<4;i++) for(j=0;j<4;j++) printf("%d\t", arr[i][j]);
}
D. 誰有大一C語言考試題快考試了,跪求題庫··
一、單項選擇題(每小題2分,共50分)
1、一個C程序的執行是從___A__。
A、本程序的main函數開始,到main函數結束
B、本程序的main函數開始,到本程序文件的最後一個函數結束
C、本程序文件的第一個函數開始,到本程序文件的最後一個函數結束
D、本程序文件的第一個函數開始,到本程序main函數結束
2、C語言程序的基本單位是___C___。
A、程序行 B、語句
C、函數 D、字元
3、請選出可用作C語言用戶標識符的一組標識符___B___。
A、void B、a3_b3 C、For D、2a
define _123 -abc DO
WORD IF ase sizeof
4、假定x和y為double型,則表達式(x=2,y=x+5/2)的值是__C__ 。
A、4.500000 B、4
C、4.000000 D、2.000000
5、下列可以正確表示字元型常量的是___D__。
A、297 B、"a"
C、"\n" D、'\t'
6、在C語言中,要求運算數必須是整型的運算符是__D__。
A、/ B、++
C、*= D、%
7、C語言中,復合語句的構成是將一系列語句置於__C__。
A、begin與end之間
B、方框號「[ ]」之間
C、花括弧「{ }」之間
D、圓括弧「( )」之間
8、有如下程序段,對應正確的數據輸入是___A___。
float x,y;
scanf(」%f%f」, &x,&y);
printf(」a=%f,b=%f」, x,y);
A、2.04<回車> B、2.04,5.67<回車>
5.67<回車>
C、A=2.04,B=5.67<回車> D、2.045.67<回車>
9、以下程序段的輸出結果是___D__。
int a=5678;
printf(」%2d\n」, a);
A、提示出錯、無結果 B、56
C、78 D、5678
10、已知:char ch='A';則下列表達式的值是__B__。
ch = (ch>='A'&&ch<='Z') ? (ch+32) : ch;
A、A B、a C、Z D、z
11、下列描述,正確的是___B__ 。
A、表達式3.91%5是合法的
B、用b=89作為while循環的條件是合法的
C、逗號表達式是沒有值和類型的
D、字元型變數和int型變數的操作完全不同
12、閱讀以下程序:
main()
{int x;
scanf("%d",&x);
if(x--<5) printf("%d",x);
else printf("%d",x++);
}
程序運行後,如果從鍵盤上輸人5,則輸出結果是__B__ 。
A、3 B、 4 C、 5 D、 6
13、下列程序的運行結果是___C__。
#include 」stdio.h」
main()
{ int k;
k=3;
switch(k)
{ case 1: printf(」%d\n」, k++);
case 2: printf(」%d\n」, k++);
case 3: printf(」%d\n」, k++);
case 4: printf(」%d\n」, k++);
break;
default: printf(」Full!\n」);
}
}
A、3 B、4 C、3 D、4
4 4
14、設a、b、c、d、m、n均為int型變數,且a=5、b=6、c=7、d=8、
m=2、n=1,則邏輯表達式(m==a<b)&&(n==c<d) 的值為__A__。
A、0 B、 1 C、2 D、 3
15、設x、y和temp均為long int型變數,則以下語句:
{temp=x; x=y; y=temp;} 的功能是__D__。
A、把x和y按從大到小排列
B、把x和y按從小到大排列
C、無確定結果
D、交換變數x和變數y的值
16、以下程序的輸出結果是 ___A__ 。
main()
{int a, b;
for(a=1, b=1; a<=100; a++)
{if(b>=10) break;
if (b%3==1)
{ b+=3; continue; }
}
printf("%d\n",a);
}
A、4 B、6 C、5 D、101
17、執行以下程序後輸出的結果是___D__。
main()
{ int y=10;
do {y--;}
while(--y);
printf("%d\n",y--);}
A、-1 B、1 C、8 D、0
18、執行以下程序後輸出的結果是___B__。
main()
{int i, j, w=0;
for(i=4; i; i--)
for(j=1;j<=2;j++)
w=w+i*j; w=i*j;
printf("%d\n",w);
}
A、4 B、0 C、1 D、30
19、以下程序運行後,輸出結果是__C__。
main()
{
int n[5]={3,3,3},i,k=2;
for(i=0;i<k;i++) n[i]=n[i]+1;
printf("%d\n",n[k]);
}
A、4 B、9 C、3 D、不確定的值
20、以下程序的輸出結果是 __A__ 。
f ( int a)
{int b=0;
static int c = 3;
b++; c++;
return(a+b+c);
}
main()
{int a = 2, i;
for(i=0;i<3;i++) printf("%d\n",f(a));
}
A、 7 B、 7 C、 7 D、 7
8 9 10 7
9 11 13 7
21、設C程序如下:
#define ABC(x) x*x
#include"stdio.h"
main()
{int a=3,b;
b=ABC(a+1);
printf("b=%d", b); }
上述程序運行輸出的結果是__D_ 。
A、b=4 B、b=a+1
C、b=16 D、b=7
22、以下程序的輸出結果是__B__。
main()
{int i, a[10];
for(i=9;i>=0;i--) a[i]=10-i;
printf("%d %d %d",a[1],a[6],a[9]);
}
A、1 6 9 B、9 4 1
C、9 6 1 D、3 5 7
23、若定義:float x=3.14159,*p=&x;
則printf("%f\n",*p++);的輸出結果為__C__ 。
A、無確定值 B、x的地址
C、3.14159 D、4.14159
24、以下程序的輸出結果是___B__
main()
{char b[]="Language";
char *p=b;
printf("%c ",*(b+2));
p=p+7;
printf("%c\n",*p++);
}
A、2 7 B、n e C、a g D、n u
25、下列程序的輸出結果是___A__。
#include "stdio.h"
main()
{
int a[]={1,2,3,4,5,6,7,8,9,0}, i, s, *p;
p=a;s=0;
for(i=0;i<=9;i++)
s+=*p++;
printf("%d\n", s);
}
A、45 B、44 C、0 D、9
二、判斷題(每小題1分,共10分)
1.語句int *point;中的point是指針變數名。( T )
2.主函數和其它函數之間可以相互調用。( F )
3.puts( )和gets( )函數只能輸入或輸出一個字元。( F )
4. 可以對字元型數組元素進行整體輸入、輸出。( T )
5.do-while語句構成的循環不能用其他語句構成的循環來代替。( F )
6.在一個函數內的復合語句中定義的變數可以在本函數范圍內有效。(F )
7.函數必須有返回值,否則不能使用函數。( F )
8.for(;;);語句相當於while(1);語句。( T )
9.C程序的執行總是從第一個定義的函數開始。( F )
10.C語言中的關鍵字專門用作語言的特定成分,而不能作為一般標識符使用。( T )
三、程序填空題(每空2分,共10分)
1、下面程序完成判斷某一個數m是否為素數,如果是則輸出"m is a prime!",否則就輸出"m is not a prime!",請選擇填空。
main()
{ int i, m;
scanf("m=%d", &m);
for(i=2; i<m; i++)
{ if(m%i==0)
{ printf("%d is not a prime!\n", m); (1) }
else (2)
}
if(i==m) printf("%d is a prime!\n", m);
}
(1)、 A、break B、continue
C、break; D、continue;
(2)、 A、break B、break;
C、continue D、continue;
2、以下程序的功能是:求出用數字0至9組成沒有重復數字且是13倍數的三位數的個數,請選擇填空。
#include<stdio.h>
void main()
{ int i, j, k, w, count = 0;
for( (3) ; i<=9; i++)
for(j=0;j<=9; j++)
for(k=0; k<=9;k++)
if( (4) )
{ w = i*100+j*10+k;
if( (5) )
count++;
}
printf("\n count=%d\n", count);
}
(3)、 A、i=0 B、i=1
C、i=9 D、i=-1
(4)、 A、i!=j B、i!=j ||j!=k
C、i!=j&& j!=k D、i!=j&& j!=k && k!=i
(5)、 A、w%13=0 B、w/13=0
C、w%13==0 D、w/13==0
四、編程題(第1小題12分,第2小題18分,共30分)
1、從鍵盤輸入一個4位數的正整數n,將該數反序輸出。例如,若輸入的是
1357,則輸出的是7531。
要求:1)利用VC++編譯系統進行調試、運行
2)對輸入的正整數n的合法性進行檢查
3)將源程序以「編程題1.c」為文件名保存在網路盤(K:盤)的考生文件夾上,用其它文件名保存或保存在其他地方均不能得分
2、已知一組字元串a[27]="jjyyzzabcdefgJJYYZZABCDEFG"; 請編一程序,將其 中的小寫字母換成其前一個字母,即z換成y,y換成x,...,b換成a,若是a則換成z。然後對數組a[27]從小到大排序,並輸出排序後的字元串。
要求:1)利用VC++編譯系統進行調試、運行
2)先輸出原字元串(即未做任何改變的字元串),最後輸出排序後
的字元串
3)將源程序以「編程題2.c」為文件名保存在網路盤(K:盤)的考生文件夾上,用其它文件名保存或保存在其他地方均不能得分