首页 > 经典文章 > 经典美文 > c考试题库及答案

c考试题库及答案

时间:2018-07-30   来源:经典美文   点击:

【www.gbppp.com--经典美文】

c考试题库及答案 第一篇_C语言习题及答案

习题一

【习题1-1】C语言源程序最多可能由________________部分组成?

A) 预处理部分 B)变量说明部分

C) 函数原型声明部分 D)函数定义部分

【习题1-2】一个完整的C语言源程序最少必须有_______。

A)若干个主函数 B)若干个函数

C)且只能有一个主函数 D)一个函数

【习题1-3】C语言以函数为源程序的基本单位最主要有利于_______。

A)程序设计结构化 B)程序设计模块化

C)程序设计简单化 D提高程序设计有效性

【习题1-4】要使得C语言编写的程序能够在计算机上运行并得出正确结果,必

须要先经过_______________________________________。

A)编辑和链接 B)编译和链接

C)修改和运行 D运行并输入数据

【习题1-5】选择一个C语言集成开发环境并启动它,然后分别输入【例1-1】、

【例1-2】、【例1-3】的源程序,依次编译、链接、运行,看看能否达到预想的结果?从中了解程序的开发过程。

习题二

一、单项选择题

【习题2-1】 已知’A’的ASCII代码是65,以下程序的输出结果是( ) #include "stdio.h"

main( )

{ int c1=65,c2=66;

printf("%c, %c",c1,c2);

}

A. 因输出格式不合法,输出错误信息 B. 65,66

C. A,B D. 65,66

【习题2-2】若变量已正确定义,要将a和b中的数进行交换,下面不正确的语句组是( )

A. a=a+b,b=a-b,a=a-b; B. t=a,a=b,b=t;

C. a=t,t=b,b=a; D. t=b;b=a;a=t;

【习题2-3】 若k是整型变量,则以下程序段的输出是( )

k=-8567;

printf (“|%d|\n”,k);

A. 输出格式不正确 B. 输出为|008567|

C. 输出为|8567| D. 输出为|-8567|

【习题2-4】下列可作变量的标识符是( )

A. 3rt B. je_c C.$89 D. a+6

【习题2-5】C语言中的标识符只能由字母、数字和下划线三种字符组成,且第一个字符( )

A.必须为字母或下划线 B.必须为下划线

C.必须为字母

D.可以是字母、数字和下划线中的任一种字符

【习题2-6】 C语言并不是非常严谨的算法语言,在以下关于C语言的不严谨的叙述中,错误的说法是( )

A. 大写字母和小写字符的意义相同

B. 有些不同类型的变量可以在一个表达式中运算

C. 在赋值表达式中等号(=)左边的变量和右边的值可以是不同类型

D. 同一个运算符号在不同的场合可以有不同的含义

二、简答题

【习题2-7】 C语言数据类型有哪几类?基本数据类型包括哪几类?

【习题2-8】 C语言中十进制、八进制和十六进制整常量是如何表示的?

【习题2-9】 C语言为什么规定对所用到的变量“先定义,后使用”,这样做有什么好处?

【习题2-10】C语言中的语句有几类?控制语句有哪些?

【习题2-11】 怎样区分表达式和表达式语句?为什么有人称C为表达式语言?

【习题2-12】字符常量与字符串常量有什么区别?

【习题2-13】下面各数用八进制和十六进制数表示:

(1)10 (2)32 (3)75 (4)-617

(5)-111 (6)2483 (7)-28654 (8)21003

三、阅读程序写结果或填空

【习题2-14】写出以下程序的运行结果:

#include<stdio.h>

main()

{

char c1='a',c2='b',c3='c',c4='\101',c5='\116';

printf("a%c b%c\tc%c\tabc\n",c1,c2,c3);

printf("\t\b%c %c\n",c4,c5);

}

【习题2-15】写出以下程序的运行结果:

#include<stdio.h>

main()

{

int n=177;

printf("%o\n",n);

}

【习题2-16】写出以下程序的运行结果:

#include<stdio.h>

main()

{

int a,n=0;

n+=(a=10);

printf("%d\n",a);

}

【习题2-17】写出以下程序的运行结果:

#include <stdio.h>

main()

{

int a=5,b=7;

float x=67.8564,y=-789.124;

char c='A';

long n=1234567;

unsigned u=65535;

printf("%d%d\n",a,b);

printf("%3d%3d\n",a,b);

printf("%f,%f\n",x,y);

printf("%-10f,%-10f\n",x,y);

printf("%8.2f,%8.2f,%.4f,%.4f,%3f,%3f\n",x,y,x,y,x,y);

printf("%e,%10.2e\n",x,y);

printf("%c,%d,%o,%x\n",c,c,c,c);

printf("%ld,%lo,%x\n",n,n,n);

printf("%u,%o,%x,%d\n",u,u,u,u);

printf("%s,%5.3s\n","COMPUTER","COMPUTER");

}

【习题2-18】写出以下程序的运行结果:

#include<stdio.h>

main()

{

int i,j,m,n;

i=8;

j=10;

m=++i;

n=j++;

printf("%d,%d,%d,%d",i,j,m,n);

}

【习题2-19】下面运算表达式的值是:

x+a%3*(int)(x+y)%2/4

设x=2.5,a=7,y=4.7

【习题2-20】下面运算表达式的值是:

(float)(a+b)/2+(int)x%(int)y

设a=2,b=3,x=3.5,y=2.5

【习题2-21】 写出下面赋值表达式运算后a的值,设原来a=12;

(1)a+=a (2) a-=2

(3)a*=2+3 (4) a/=a+a

(5)a%=(n%=2),n 的值等于5 (6)a+=a-=a*=a

【习题2-22】 数学表达式:-5<x<5用C语句如何表达?x>5或x<-5又是如何表达?请写出相应的C语句。

四、编写程序题

【习题2-23】 设圆半径r=1.5,圆柱高h=3,求圆周长、圆面积、圆球表面积(4πR2)、圆球体积(V=4πR³/3)、圆柱体积。用scanf()输入数据,输出计算结果,输出时要求有文字说明,取小数点后2位数字。请编写程序。

5【习题2-24】 输入一个华氏温度,要求输出摄氏温度。公式为c=(F-32),9

输出要有文字说明,取2位小数。

【习题2-25】 编程序,用getchar()函数读入两个字符给cl、c2,然后分别用putchar()函数和printf()函数输出这两个字符。并思考以下问题:

(1)变量c1、c2应定义为字符型或整型?抑或二者皆可?

(2)要求输出c1和c2值的ASCII码,应如何处理?用putchar函数还是printf函数?

(3)整型变量与字符变量是否在任何情况下都可以互相代替?如“char c1,c2;”与“int cl,c2;”是否无条件地等价?

【习题2-26】编写程序,从终端键盘输入圆的半径r,圆柱的高h,分别计算出圆周c1、圆面积cs和圆柱的体积cvz。输出计算结果要求有文字说明,并取小数点后两位数字。

【习题2-27】编写程序,读入一个字母,输出与之对应的ASCII码,输入输出都要有相应的文字提示。

习题三

一、单项选择题

【习题3-1】“基本结构”不具有以下特点( )

A. 只有一个入口,只有一个出口 B. 没有死循环

C. 没有永远执行不到的语句 D. 不允许退出循环

【习题3-2】 在流程图中,菱形框表示的操作是( )

A. 数据的输入输出 B. 程序的开始

C. 条件判断 D. 赋值

【习题3-3】以下程序的运行结果是( )

#include<stdio.h>

main()

{int m=5,n=10;

printf("%d,%d\n",m++,--n);

}

A. 5,9 B.6,9

C. 5,10 D.6,10

【习题3-4】逻辑运算符两侧的数据类型( )

A. 只能是0和1 B. 只能是0或非0正数

C. 只能是整型或字符型数据 D. 可以是任何类型的数据

【习题3-5】下列关系表达式结果为假的是( )

A. 0!=1 B. 2<=8

C. (a=2*2)= =2 D. y=(2+2)= =4

【习题3-6】下列运算符中优先级最低的是( )

A. ?: B. +=

C. >= D. = =

【习题3-7】写出下面各逻辑表达式的值。设a=3,b=4,c=5。 a+b>c&&b==c

a||b+c&&b-c

!(a>b)&&!c||1

!(x=a)&&(y=b)&&0

!(a+b)+c-1&&b+c/2

二、简单题

【习题3-8】什么是算法?算法有哪些特性?从日常生活中举出几个算法的例子。

【习题3-9】算法有哪些描述方法?各有什么优缺点?

【习题3-10】结构化的算法有哪几种结构?试分别描述。

【习题3-11】选择语句和循环语句对条件的判断的标准是什么?(即何值为真、何值为假?)

三、用传统流程图表示求解以下问题的算法。

【习题3-12】有两个瓶子A和B,分别盛放醋和酱油,要求将它们互换(即A瓶原来盛醋,现改盛酱油,B瓶则相反);

【习题3-13】依次将10个数输入,要求将其中最大的数打印出来;

【习题3-14】有三个数a、b、c,要求按大小顺序把它们打印出来;

【习题3-15】求1+2+3+…+100;

【习题3-16】判断一个数n能否同时被3和5整除;

【习题3-17】将100~200之间的素数打印出来;

【习题3-18】求两个数m和n的最大公约数;

【习题3-19】求方程式ax2+bx+c=0的根(a、b、c从键盘输入)。

四、编写程序题

【习题3-20】有一函数

(x1) x  y2x-1 (1x10) 3x-11 (x100) 

c考试题库及答案 第二篇_c和c++经典笔试题及答案

C++/C经典笔试题及答案

C++/C试题

本试题仅用于考查C++/C程序员的基本编程技能。内容限于C++/C常用语法,不涉及数据结构、算法以及深奥的语法。考试成绩能反映出考生的编程质量以及对C++/C的理解程度,但不能反映考生的智力和软件开发能力。 笔试时间90分钟。请考生认真答题,切勿轻视。

一、请填写BOOL , float, 指针变量 与“零值”比较的 if 语句。(10分) 提示:这里“零值”可以是0, 0.0 , FALSE或者“空指针”。例如 int 变量 n 与“零值”比较的 if 语句为: if ( n == 0 ) if ( n != 0 )

1、头文件中的 ifndef/define/endif

干什么用?

2、#include <filename.h> 和 #include “filename.h” 有什么区别? 3、const 有什么用途?(请至少说明两种) 4、在C++ 程序中调用被 C编译器编译后的函数,为什么要加 extern “C”声明? 5

已知strcpy函数的原型是

char *strcpy(char *strDest, const char *strSrc);

其中strDest是目的字符串,strSrc是源字符串。

(1)不调用C++/C的字符串库函数,请编写函数 strcpy (2)strcpy能把strSrc的内容复制到strDest,为什么还要char * 类型的返回值?

六、编写类String的构造函数、析构函数和赋值函数(25分)

已知类String的原型为: class String {

public:

String(const char *str = NULL); // 普通构造函数 String(const String &other); // 拷贝构造函数 ~ String(void); // 析构函数

String & operate =(const String &other); // 赋值函数 private:

char *m_data; // 用于保存字符串 };

请编写String的上述4个函数。

C++/C试题的答案与评分标准

1、头文件中的 ifndef/define/endif 干什么用?(5分) 答:防止该头文件被重复引用。

2、#include <filename.h> 和 #include “filename.h” 有什么区别?(5分) 答:对于#include <filename.h> ,编译器从标准库路径开始搜索 filename.h 对于#include “filename.h” ,编译器从用户的工作路径开始搜索 filename.h 3、const 有什么用途?(请至少说明两种)(5分) 答:(1)可以定义 const 常量

(2)const可以修饰函数的参数、返回值,甚至函数的定义体。被const修饰的东西都受到强制保护,可以预防意外的变动,能提高程序的健壮性。 4、在C++ 程序中调用被 C编译器编译后的函数,为什么要加 extern “C”? (5分)

答:C++语言支持函数重载,C语言不支持函数重载。函数被C++编译后在库中的名字与C语言的不同。假设某个函数的原型为: void foo(int x, int y);

该函数被C编译器编译后在库中的名字为_foo,而C++编译器则会产生像_foo_int_int之类的名字。

C++提供了C连接交换指定符号extern“C”来解决名字匹配问题。 5

【c考试题库及答案,】

已知strcpy函数的原型是

char *strcpy(char *strDest, const char *strSrc);

其中strDest是目的字符串,strSrc是源字符串。

(1)不调用C++/C的字符串库函数,请编写函数 strcpy char *strcpy(char *strDest, const char *strSrc); {

assert((strDest!=NULL) && (strSrc !=NULL)); // 2分 char *address = strDest; // 2分

while( (*strDest++ = * strSrc++) != „\0‟ ) // 2分 NULL ;

return address ; // 2分

c考试题库及答案 第三篇_c语言试题及答案

C语言部分

一、选择题(每小题2分,共10分)

(下在各小题,分别有一个或多个正确答案,请将所有正确答案的编号,填写在该小题题干后的括号内。错选或漏选均不得分)。

1、若定义:int a[2][3]{0,2,4,6,8,10};以下描述正确的有( A,C,D,E )

A、*(a+1)为元素6的地址

这里a+1=a[1]的地址;*(a+1)的值是6,故A正确。

B、*(a[1]+1)的值为2

为8,故B不正确

C、**(a+1)+2的值为8

这里a+1是一个指针,指向的是a[1]. *(a+1)为a[1],a[1]指向的是a[1][0]. **(a+1)为6,加2得8,故C正确;

D、a[0]与a相同

因二者都是指针,指针的地址都是指向数组中的第一个元素的地址,故D正确。 E、a[1][2]的值为10

它是指第二行的第三个元素,为10,正确

2、对函数的正确使用方法描述( A,C,D )。

A、用数组做函数参数时,必须在主调函数和被调函数中分别定义数组

B、实参数组元素和形参数组元素类型可以不一致

C、形参数组长度可以不指定 D、形参数组长度可以大于实参数组长度 E、数组名做参数属于值传递

3、对静态变量的正确描述( A,B,D,E )

A、静态局部变量在静态存储区内分配单元( )

B、静态外部变量可以赋初值,也可以不赋初值

C、静态外部变量的作用与外部变量相同

D、静态局部变量在函数调用结束时,仍保存其值,不会随着消失。

E、静态局部变量只赋一次初值

4、下列描述正确的是( A ,C)。

A、由main 函数及其参数argc和* argv[]可以实现命令行方式

B、使用fclose关闭文件时,先释放文件指针,再写缓冲区数据到文件中 //先写缓冲区数据到文件中,再释放文件指针

C、字符数组并不要求它的最后一个字符是‘\0’

//是的,以字符指针指向的字符串才要求,因为只有这样,才能知道字符串的长度,而在字符数组中,不用\0,一样可以知道到哪里是字符数组的结尾。

D、‘A’和“A”都是字符串常量

E、若char*S=“\ta\017bc”;则指针变量S指向的字符串所占的字节数是7

5、在缓冲文件系统中用于读写的函数有( A,B,D )

A、putchar () B、fread() C、rewind () D、purw() E、fseek()

二、程序阅读,并给出运行结果(共10分,每题5分)。

(1)main()

{ unsigned a,b,x

int n;

a=0x763 输出结果:

n=6;

b=a<<(12-n);

x=(a>>n-2)^b; //+,-,的优先级比<<,>>高。

printf(“\nb=%x,\nx=%x”,b,x);

在用2个字节表示整数的系统中

结果为

d8c0

d8b6

在用4个字节表示整数的系统中

结果为

1d8c0

1d8b6

故以上两种结果都正确。

(2) #include 〈stdin.h〉

struct m {int x;

int *y;

} *p;

int a [4]={12,33,-40,100};

struct m b [4]={10,&a[2],9,&a[3],8,&a[0],7,&a[1]}'

main()

p=b; 输出结果:

printf(“%d\n”,++p->x); //->的优先级高于++,因此等于是++(p->x),为11 printf(“%d\n”,(++p)->x); //p后移一个元素,其x值为9;

printf(“%d\n”,++(*p->y));

//->的优先级高于*, 此时p已指向b[1],故*(p->y)为a[3]为100.自加后为101; }

故输出结果为:

11

9

101

三、程序设计(共10分)

设在文件a.txt和文件b.txt中分别存有两个字符串,设计一个程序将这两个字符串按依序交叉的方式合并为一个字符串(例如“aaaaa”与“bbb”的合并结果为“abababaa”,而“bbb”与“aaaaa”的合作结果为“ bababaa”,)并将结果存入文件a.txt中。

【答案】

写程序时,可以分别读取a.txt文件和b.txt文件,注意(1),无论a文件先读完还是b文件先读完,程序都能作出适应性的判断。注意(2)把a和b合并的结果,写到一个临时文件c中,最后把c的文件覆盖到a文件中,达到题意的要求。 #include<stdio.h>

main()

{

FILE *fp,*fq,*fr;

char ch;

if((fp=fopen("a.txt","r+"))==NULL)

{ printf("cannot open file a.txt");

exit(0);

网址:

}

if((fq=fopen("b.txt","r"))==NULL)

{ printf("cannot open file b.txt");

exit(0);

}

fr=fopen("c.txt","w+");

while(!feof(fp))

{

ch=fgetc(fp);

fputc(ch,fr);

if(!feof(fq))

{

ch=fgetc(fq);

fputc(ch,fr);

}

}

while(!feof(fq))

{

ch=fgetc(fq);

fputc(ch,fr);

}

rewind(fp); rewind(fr);

while(!feof(fr))

{

ch=fgetc(fr);

fputc(ch,fp);

}

fclose(fp); fclose(fq); fclose(fr);

}

1.2 四川大学2001年攻读硕士学位研究生入学考试试题 及 答案

1.2.1第2001年――C语言程序设计 题目

一、单项选择题(在每小题的四个备选答案中,选出一个正确的答案,并将其号码写在答题纸上。请注意注明题号。每小题1分,共计6分)

1、‘\t’表示什么?

①字符串常数 ②标识符 ③变量 ④字符常量

答案:④

2、对宏定义不正确的描述是哪一个?

①在进行宏定义时,可以引用已经定义的宏名,可以层层置换

//可以引用已经定义了的宏名,可以层层置换

②宏名的有效范围包括本文件的任何位置

//宏名的有效范围定义命令之后到本源文件结束,可以用#define终止宏定义的作用域

③宠定义不是语句,不必在行末加分号

//是预处理定义语句

④对程序中双引号括起来的字符串,即使与宏名相同,也不进行置换

3、若定义static char s[20]=”computer”;则执行语句x = strlen(s);之后,x的值为多少?

①20 ②9 ③8 ④19

//strlen函数计算char*型字符串的长度的时候,并不包含末尾的\0;

4、以下哪一个表达式取值是正确的?

①6>5结果为6 ②6&&5结果为7

③6||5结果为7 ④6<5结果为0

5、如定义

enum weekday {one, two, thr, fou, fiv};

enum weekday working;

以下哪个是不正确的枚举变量的使用?

①working = thr; ②working =2;

③working = (enum weekday)2;

④working = (enum weekday) (5-3);

//不能对其赋值

6、下列说法中正确的是哪一个?

①sizeof (char) 是结果为整型的表达式

②sizeof (char) 是一个不合法的表示形式

③sizeof (char) 是一种函数调用

④sizeof (char) 是结果为实型的表达式

二、阅读程序,并回答问题(共12分)

1、下列程序的输出是什么?(3分)

# include <stdio. h>

void main ()

char * aplha [6] = ﹛“ABC”,“DEF”,“GHI”,“JKL”,“MNO”,“PQR”﹜; char **p;

int i;

p = aplha;

for (i = 0; i<4; i++)

printf (“%s”, p[i]);

printf (“\n”);

//输出结果

ABCDEFGHIJKL

刚好是字符串数组里面的前四个元素的内容连接起来

2、下列程序为什么无法将用户输入的三个整数按从小到大排序输出?应该如何修改?(6分)

# include <stdio.h>

void swap (int x, int y)

int t = x;

x = y;

y = t;

void main ()

int a, b, c;

scanf (“%d, %d, %d”, &a, &b, &c);

if (a>b) swap (a, b);

if (a>c) swap (a, c);

if (b>c) swap (b, c);

printf (“%d, %d, %d”, a, b, c);

//函数swap采用值传递,虽然将形参x和y交换了,但是并不影响到实参。将值传递改成指针传递就可以了。

C函数参数采用值传递方式,虽然swap函数将形式参数x和y的值进行了调换,但是影响不到相应的实在参数。所以在主函数中,通过调用sawp函数调换a和b(或a或c,或b和c)的值是根本达不到目的的。

修改:

(1)(2分)

void swap (int *x, int*y)

int t = *x;

*x = *y;

*y = t;

(2)(2分)主函数

if(a>b) swap(&a,&b);

if(a>c) swap(&a,&c);

c考试题库及答案 第四篇_c语言期末测试题(附答案)

课程代码:A100002 座位号:

《计算机技术基础(C语言)》试卷A

姓名: 学号: 专业:

学院班级20 年 月 日

第一部分 选择题(共 30 分)

一、单项选择题(本大题共 15 小题,每题只有一个

正确答案,答对一题得 2 分,共 30 分)

1、以下关于C语言标识符的描述中,正确的是 【 】。

A)标识符可以由汉字组成 B)标识符只能以字母开头

C)关键字可以作为用户标识符 D)Area与area是不同的标识符 2、使下列程序段输出“123,456,78”,键盘输入数据,正确的输入是【 】。

int i,j,k;

scanf(“%d,%3d%d”,&i,&j,&k);

printf(“%d,%d,%d\n”,i,j,k);

A)12345678 B)123,456,78 C)123,45678 D)123,*45678 3、判断char类型的变量c1是否为数字字符的正确表达式为 【 】。 A) (c1>=0)&&(c1<=9) B) (c1>=’0’)&&(c1<=’9’)

C) ’0’<=c1<=’9’ D) (c1>=’0’)||(c1<=’9’)

4、若有语句int a=1,b=2,c=3;则以下值为0的表达式是 【 】。

A)’a’&&’b’ B)a<=b C)((a>b)||(b<c) D)(!(a+b)==c&&a)

5、已知:int a[2][3]; 则对数组元素的非法引用是

计算机技术基础试题 第 1页(共8页)

【 】

A. *(a[0]+2) B. a[1][3] C . a[1][0] D. *(*(a+1)+2)

6、在循环语句的循环体中执行break语句,其作用是 【 】。

A) 跳出该循环体,提前结束循环

B) 继续执行break语句之后的循环体各语句

C) 结束本次循环,进行下次循环

D) 终止程序运行

7、执行语句for(i=10;i>0;i--);后,变量i的值为

A)10 B)9 C)0 D)1

8、若有int *p1, *p2,k; 不正确的语句是

A. p1=&k B. p2=p1

C. *p1=k+12 D. k=p1+p2

9、在函数中未指定存储类别的局部变量,其隐含的存储类别是

A. 静态(static) B. 外部(extern)

C. 自动(auto) D. 寄存器(register)

10、如下程序的输出结果是

main( )

{ int x=2,a=0,b=0;

switch(x)

{ case 2: a++; b++;

case 1: ++a; b--; break;

case 0: b++;}

printf("a=%d, b=%d\n", a, b);}

A. a=2, b=0 B. a=2, b=1 C. a=1, b=1 D. a=1, b=0

11、表示关系a<b<=c的C语言表达式为

A. (a<b)&&(b<=c) B. (a<b)AND(b<=c)

C. (a<b<=c) D. (a<b)&(b<=c)

12、 有以下程序

#include <stdio.h>

main()

{int x;

scanf(“%d”,&x);

if(x<=3) ; else

if(x !=10)printf(“%d\n”,x); }

计算机技术基础试题 第2页(

本文来源:http://www.gbppp.com/jd/467110/

推荐访问:保险考试题库与答案 计算机考试题库和答案

热门文章