『壹』 c語言考試如何從題庫中抽題
隨機抽取,簡單演算法題概率最小,指針和結構體概率一般,出現概率最大的應該是數組
『貳』 大一C語言期末考試求題庫
一、單項選擇題(共10題,每題2分,共20分。在備選答案中選擇一個最佳答案。多選、錯選、不選不得分)
1、不是C語言基本數據類型的是( )。
A、指針類型 B、整型
C、字元型 D、實型
2、設有:int a=3, b= 4, c= 5,x , y; 表達式0 && (x=a)&&(y=b)的值為( )。
A、1 B、0 C、3 D、4
3、設有語句 int a=3 ; 則執行了語句 a+=6;後,變數a 的值為( )。
A、18 B、-3 C、9 D、12
4、執行以下程序段後,輸出的y值為( )
void main()
{ int a[]={2,4,6,8,10};
int y, *p;
p=&a[0];
y=*p; printf(「%d」,y);
}
A、2 B、4 C、6 D、8
5、有定義語句:float a[4];則分配給數組a的內存空間為( )位元組。
A、 20 B、 12 C、 16 C、10
6、以下描述錯誤的是( )。
A、break語句可用於while語句。
B、break語句和continue語句的作用是一樣的。
C、在循環語句中使用break語句是為了跳出循環,提前結束循環。
D、在循環語句中使用continue語句是為了結束本次循環,而不終止整個循環。
7、C語言中規定,if語句的嵌套結構中,else總是( )。
A、與最近的if 配對 B、與第一個if 配對
C、按縮進位置相同的if配對 D、與最近的且尚未配對的if 配對
8、說明語句「int (*p)( ); 」的含義是( ) 。
A、p是一個指向一維數組的指針變數。
B、p是指針變數,指向一個整型數據。
C、p是一個指向函數的指針,該函數返回一個int型數據。
D、以上都不對。
9、以下對二維數組c的正確聲明是 ( ) 。
A、int c[3][ ]; B、int c(3,4);
C、int c(2)(2); D、int c[3][2];
10、下述程序段執行後輸出結果為( )。
int x=100, y=200;
printf ("% d", (x, y));
A、100 B、200 C、100,200 D、編譯出錯
二、填空題(共7題,共10空,每空1分,共10分。將答案填在題中橫線上)
1、C語言提供的三種邏輯運算符是 && 、 || 和!;
2、函數的返回值是通過函數中的 return 語句獲得的。
3、在"int a[ ][3]={{1},{3,2},{4,5,6},{0}};"定義後,a[2][2]的值為_6__ _;
4、對於"int *pa[5];" pa是一個具有5個元素的_數組指針_,每個元素是一個指向int型變數的__指針__;
5、單向鏈表的尾節點next指針應賦值__ NULL___;
6、在語句for(x=1,y=3;x>y;y++)中循環體執行的次數為 0 。
7、int a[5];數組a的首地址為2000,則元素a[1]的地址為 2002 ,元素a[2]的地址為 2004 。
三、程序填空題(共2題,共5空,每空4分,共20分)
1、以下程序完成計算1-1/2+1/3-1/4+1/5+……前n 項和,請填空。
#include <stdio.h>
int main( )
{ int i, n, flag;
float sum;
scanf("%d", &n);
flag= 1 ;
sum=0;
for(i=1;i<=n; i++ )
{ sum+=(float)flag/i;
flag=-flag ;
}
printf("%.3f\n", sum);
}
2、以下程序的功能是從鍵盤輸入n個整數,統計其中正數、0、負數的個數,請填空。
#include <stdio.h>
void main( )
{int a, i, count1,count2,count3;
count1=count2=count3=0 ;
for(i=1;i<=n;i++)
{ scanf(「%d」, &a);
if(a>0) count1++;
else if(a==0) count2++ ;
else count3++;
}
printf(「正數:&d個,零:%d個,負數:%d個\n」, count1,count2,count3 );
}
四、運行程序結果題(共4題,每題6分,共24分)
1、寫出程序運行結果。
void main( )
{ int x=1,y=2,t;
int *p1,*p2;
p1=&x; p2=&y;
t=*p1;*p1=*p2;*p2=t;
printf("x=%d,y=%d\n",x,y);
}
運行結果為:
程序有錯,不能運行!或寫:
x=2,y=1
2、寫出程序運行結果。
#include<stdio.h>
int max(int a,int b)
{ int c;
c=a>b?a:b;
return(c);
}
int min(int a,int b)
{int c;
c=a<b?a:b;
return(c);
}
void main()
{ int a=2,b=6;
printf("max=%d\n",max(a,b));
printf(「min=%d\n」,min(a,b));
}
運行結果為:
程序有錯,不能運行!或寫:
max=6
min=2
3、寫出程序運行結果。
#include <stdio.h>
void main()
{ int a[3][3]={1,2,3,4,5,6,7,8,9};
int i,j,sum=0;
for (i=0;i<3;i++)
for(j=0;j<3;j++)
if(i==j) sum=sum+a[i][j];
printf(「sum=%d\n」,sum);
}
運行結果為:
程序有錯,不能運行!或寫:
sum=15
4、寫出程序運行結果。
void main( )
{ int n,f;
n=1;
while(n<=10)
{ f=f*n;
n+=2;
}
printf(「f=%d\n」,&f);
}
運行結果為:
程序有錯,不能運行!或寫:
f=不確定
五、程序設計題(共2題,每題13分,共26分)
1、將一個數組按逆序存放,如元素1、2、3、4、5,按逆序存放後為5、4、3、2、1。
『叄』 c語言題庫
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace Dome2
{
class Student
{
public string name;
public float[] score=new float[3];
public float sum, avg;
public void InitScore()
{
this.sum = 0;
this.avg = 0;
}
public void GetScore()
{
Console.WriteLine("學員姓名:");
this.name = Console.ReadLine();
for (int i = 0; i < score.Length; i++)
{
Console.WriteLine("第{0}門的成績是:",i+1);
this.score[i] = float.Parse(Console.ReadLine());
}
Console.WriteLine();
}
public void GetSum()
{
for (int i = 0; i < score.Length; i++)
{
this.sum+=this.score[i];
}
this.avg = this.sum / 3;
}
public void DisplayScore()
{
Console.WriteLine("學員姓名:{0}", this.name);
for (int j = 0; j < 3; j++)
{
Console.WriteLine("第{0}門課程考試成績是{1}", j + 1, this.score[j]);
} Console.WriteLine("三門課程的總成績是{0},平均成績是{1}",this.sum, this.avg.ToString("0.00"));
Console.WriteLine();
}
}
}
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace Dome2
{
class Program
{
static void Main(string[] args)
{
Student[] student = new Student[5];
float max = 0,average = 0;
int i;
int counter = 0;
for (i = 0; i < student.Length; i++)
{
student[i] = new Student();
student[i].GetScore();
student[i].GetSum();
}
for (i = 0; i < student.Length; i++)
{
student[i].DisplayScore();
}
Console.WriteLine("");
Console.WriteLine("");
Console.WriteLine("");
Console.WriteLine("");
Console.WriteLine("========================================================");
for (i = 0; i < student.Length;i++ )
{
counter++;
max = student[i].sum + max;
average = student[i].avg + average;
}
Console.WriteLine("班級參加考試人數:{0} 最高分:{1} 平均分:{2}", counter, max, average);
}
}
}
『肆』 誰有大一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:盤)的考生文件夾上,用其它文件名保存或保存在其他地方均不能得分
『伍』 求C語言基礎知識試題~急!!!
二級C語言考試大綱基本要求:
1.掌握演算法的基本概念。
2.掌握基本數據結構及其操作。
3.掌握基本排序和查找演算法。
4.掌握逐步求精的結構化工程序設計方法。
5.掌握軟體工程的基本方法,具有初步應用相關技術進行軟體開發的能力。
6.掌握資料庫的基本知識,了解關系資料庫的設計。
考試內容:
(一)基本數據結構與演算法
1.演算法的基本概念;演算法復雜度的概念和意義(時間復雜度與空間復雜度)。
2.數據結構的定義;數據的邏輯結構與存儲結構;數據結構的圖形表示;線性結構與非線性結構的概念。
3.線性表的定義;線性表的順序存儲結構及其插入與刪除運算。
4.棧和隊列的定義;棧和隊列的順序存儲結構及其基本運算。
5.線性單鏈表、雙向鏈表與循環鏈表的結構及其基本運算。
6.樹的基本概念;二叉樹的定義及其存儲結構、二叉樹的前序、中序和後序遍歷。
7.順序查找與二分法查找演算法;基本排序演算法(交換類排序,選擇類排序,插入類排序)。
(二)程序設計基礎
1.程序設計方法與風格。
2.結構化程序設計。
3.面向對象的程序設計方法,對象,方法,屬性及繼承與多態性。
(三)軟體工程基礎
1.軟體工程基本概念,軟體生命周期概念,軟體工具與軟體開發環境。
2.結構化分析方法,數據流圖,數據字典,軟體需求規格說明書。
3.結構化設計方法,總體設計與詳細設計。
4.軟體測試的方法,白盒測試與黑盒測試,測試用例設計,軟體測試的實施,單元測試、集成測試和系統測試。
5.程序的調試,靜態調試與動態調試。
(四)資料庫設計基礎
1.資料庫的基本概念:資料庫,資料庫管理系統,資料庫系統。
2.數據模型,實體聯系模型E-R圖,從E-R圖導出關系數據模型。
3.關系代數運算,包括集合運算及選擇、投影、連接運算,資料庫規范化理論。
4.資料庫設計方法和步驟:需求分析、概念設計、邏輯設計和物理設計的相關策略。
C語言程序設計部分
(一)C語言的結構
1.程序的構成,main函數和其他函數。
2.頭文件、數據說明、函數的開始和結束標志。
3.源程序的書寫格式。
4.C語言的風格。
(二)數據類型及其運算
1.C的數據類型(基本類型、構造類型、指針類型、空類型)及其定義方法。
2.C運算的種類、運算優先順序和結合性。
3.不同類型數據間的轉換與運算。
4.C表達式類型(賦值表達式、算術表達式、關系表達式、邏輯表達式、條件表達式、逗號表達式)和求值規則。
(三)基本語句
1.表達式語句,空語句和復合語句。
2.數據的輸入與輸出,輸入輸出函數的調用。
3.復合語句。
4.goto語句和語句標號的使用。
(四)選擇結構程序設計
1.用if語句實現選擇結構。
2.用switch語句實現多分支選擇結構。
3.選擇結構的嵌套。
(五)循環結構程序設計
1.for循環結構。
2.while和do while循環結構。
3.continue語句和break語句。
4.循環的嵌套。
(六)數組的定義和引用
1.一維數組和多維數組的定義、初始化和引用。
2.字元串與字元數組。
(七)函數
1.庫函數的正確調用。
2.函數的定義方法。
3.函數的類型和返回值。
4.形式參數與實在參數,參數值的傳遞。
5.函數的正確調用,嵌套調用,遞歸調用。
6.局部變數和全局變數。
7.變數的存儲類別(自動、靜態、寄存器、外部),變數的作用域和生存期。
8.內部函數與外部函數。
(八)編譯預處理
1.宏定義:不帶參數的宏定義;帶參數的宏定義。
2.「文件包含」處理。
(九)指針
1.指針與指針變數的概念,指針與地址運算符。
2.變數、數組、字元串、函數、結構體的指針以及指向變數、數組、字元串、函數、結構體的指針變數。通過指針引用以下各類型數據。
3.用指針作函數參數。
4.返回指針值的指針函數。
5.指針數組,指向指針的指針,main函數命令行參數。
(十)結構體(即「結構」)與共用體(即「聯合」)
1.結構體和共用體類數據的定義方法和引用方法。
2.用指針和結構體構成鏈表,單向鏈表的建立、輸出、刪除與插入。
(十一)位運算
1.位運算符的含義及使用。
2.簡單的位運算。
(十二)文件操作
只要求緩沖文件系統(即高級磁碟I/O系統),對非標准緩沖文件系統(即低級磁碟I/O系統)不要求。
1.文件類型指針(FILE類型指針)。
2.文件的打開與關閉(fopen,fclose)。
3.文件的讀寫(fputc,fgetc,fputs,fgets,fread,fwrite,fprintf,fscanf函數),文件的定位(rewind,fseek函數)。