当前位置:首页 » 素材参考 » c语言理论考试题库
扩展阅读
中国网络原创新人乐团 2021-03-31 20:26:56
党政视频素材 2021-03-31 20:25:44
厦门大学统计学硕士 2021-03-31 20:25:36

c语言理论考试题库

发布时间: 2021-03-28 08:21:10

『壹』 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函数)。