C语言实训题及参考答案

C语言实训题及参考答案
C语言实训题及参考答案

C语言程序设计第三版习题库答案

C 语言程序设计(第三版)习题库 1、设圆半径r=,圆柱高h=3,求圆周长、圆面积、圆球表面积、圆球体积、圆柱体积。用scanf 输入数据,输出计算结果,输出时要求文字说明,取小数点后两位数字。请编程序。 #include<> main(){ floatr,h,C1,Sa,Sb,Va,Vb; scanf(__”%f ”__,&r); scanf(”%d ”,__&h _);; C1=2**r; Sa=*r*r; Sb=4*Sa; Va=4**r*r*r/3; Vb=Sa*h; printf(___”Cl=%.2fSa=%.2fSb=%.2fVa=%.2fVb=%.2f ”,Cl,Sa,Sb,Va,Vb ); } 2、输入一个华氏温度,要求输出摄氏温度。公式为c=5(F-32)/9 输出要求有文字说明,取位2小数。 #include<> main(){ floatF,c; scanf("%f",&F); ____c=5*(F-32)/9______; printf("c=%.2f",c); } 3、有一函数:?? ???≥-<≤-<=10113101121x x x x x x y 写一程序,输入x 值,输出y 值。 #include<> main(){ intx,y; printf("输入x :"); scanf("%d",&x); if(x<1){/*x<1*/ y=x; printf("x=%3d,y=x=%d\n",x,y);

}elseif(____x<10_______){/*1≤x-10*/ _____y=2*x-1_______; printf("x=%3d,y=2*x-1=%d\n",x,y); }else{/*x≥10*/ y=3*x-11; printf("x=%3d,y=3*x-11=%d\n",x#include"" main() { intx,y; scanf("%d",&x); if(x<1) {y=x;} elseif(x>=1&&x<10) {y=2*x-1;} else {y=3*x-11;} printf("%d",y); }#include"" main() { intx,y; scanf("%d",&x); if(x<1) {y=x;} elseif(x>=1&&x<10) {y=2*x-1;} else {y=3*x-11;} printf("%d\n",y); }#include"" main() { intx,y; scanf("%d",&x); if(x<1) {y=x;} elseif(x>=1&&x<10) {y=2*x-1;} else {y=3*x-11;} printf("%d",y); }scanf("%d",&x);

c语言复习题答案

c语言复习题-2010 1~5 ABCDB 6~10 BADAD 11~15 DABAB 16~20 ADDDC 1. 编程计算1!+2!+3!+……+n!的值,其中n的值由用户输入。 #include main() { long term = 1,sum = 0; int i,n; scanf(“%d”,&n); for (i = 1; i <= n; i++) { term = term * i; sum = sum + term; } printf("1!+2!+...n! = %ld \n", sum); } 2. 从键盘任意输入某班20个学生的成绩,打印最高分,并统计不及格学生的人数。要求按如下函数原型进行编程,分别计算最高分和统计不及格学生的人数:int FindMax(int score[], int n); int CountFail(int score[], int n); #include int FindMax(int score[], int n); int CountFail(int score[], int n); main() { int i, score[20],max,count; for (i=0; i<20; i++) { scanf("%d",&score[i]); } max = FindMax(score, 20); printf("max = %d\n",max); count = CountFail(score, 20); printf("count = %d\n",count); } int FindMax(int score[], int n) { int max,i;

c语言试题及答案

1、以下正确的说法是( B ) (A) 用户若需要调用标准库函数,调用前必须重新定义 (B) 用户可以重新定义标准库函数,若如此,该函数将失去原有含义 (C) 系统根本不允许用户重新定义标准库函数 (D) 用户若需调用标准库函数,调用前不必使用预编译命令将该函数所在文件包括到用户源文件中,系统自动去调 2、以下正确的函数声明形式是( A ) (A) double fun(int x, int y) (B) double fun(int x; int y) (C) double fun(int x, int y); (D) double fun(int x,y); 3、以下正确的函数形式是( D ) (A) double fun(int x, int y) { z=x+y; return z;} (B) fun(int x,y) { int z; return z;} (C) fun(x,y) { int x,y; double z; z=x+y; return z;} (D) double fun(int x, int y) { double z; z=x+y; return z;} 4、以下正确的说法是( A ) 在C语言中 (A) 实参和与其对应的形参各占用独立的存储单元 (B) 实参和与其对应的形参共占用一个存储单元 (C) 只有当实参和与其对应的形参同名时才共占用存储单元 (D) 形参是虚拟的,不占用存储单元 5、若调用一个函数,且此函数中没有return语句,则正确的说法是( A ) 该函数 (A) 没有返回值 (B) 返回若干个系统默认值 (C) 能返回一个用户所希望的函数值 (D) 返回一个不确定的值 6、以下不正确的说法是( B ) C语言规定 (A) 实参可以是常量、变量和表达式 (B) 形参可以是常量、变量和表达式 (C) 实参可以为任意类型 (D) 形参应与其对应的实参类型一致 7、以下正确的说法是( C ) (A) 定义函数时,形参的类型说明可以放在函数体内 (B) return后边的值不能为表达式 (C) 如果函数值的类型与返回值类型不一致,以函数值类型为准 (D) 如果形参与实参的类型不一致,以实参类型为准 8、C语言规定,简单变量做实参时,它和对应形参之间的数据传递方式是( B ) (A) 地址传递 (B) 单向值传递 (C) 由实参传给形参,再由形参传回给实参 (D) 由用户指定传递方式

C语言程序设计程序填空题库及答案

程序填空题 导读:在程序填空题中,已经给出了程序的主干,读者首先要理解程序的思路,再选择正确的内容填入空白处,使程序完成既定的功能。这类习题的设计就是要引导读者逐步掌握编程的方法。本节习题的难度适中,可能有些典型的程序在课堂上已经有所接触,读者一定要独立完成它,这样就可以逐步提高自己的编程能力。在程序设计语言学习的中期,读者对程序设计已经有了初步的了解,而自己编写程序又不知从何处入手,此时解答此类题目可以避免盲目性,从而提高学习的效率。 【】下面程序的功能是不用第三个变量,实现两个数的对调操作。#include <> main() { int a,b; scanf("%d%d",&a,&b); printf("a=%d,b=%d\n",a,b); a= ①; b= ②; a= ③; printf("a=%d,b=%d\n",a,b); }

【】下面程序的功能是根据近似公式:π2/6≈ 1/12+1/22+1/32+ …… +1/n2,求π值。 #include <> double pi(long n) { double s=; long i; for(i=1;i<=n;i++) s=s+ ①; return( ②); } 【】下面的程序的功能是求一维数组中的最小元素。 findmin(int *s,int t,int *k) { int p; for(p=0,*k=p;p

C语言基础练习题(含答案)Word版

第一章C语言基础知识 1.1 选择题 1. 以下不是C语言的特点的是()。B A、语言简洁紧凑 B、能够编制出功能复杂的程序 C、C语言可以直接对硬件操作 D、C语言移植性好 2. 下列字符序列中,不可用作C语言标识符的是()。B A.abc123 B.no.1 C._123_ D._ok 3. 正确的C语言标识符是()。A A._buy_2 B.2_buy C.?_buy D.buy? 4. 请选出可用作C语言用户标识符的一组标识符()。B A.void B.a3_b3 C.For D.2a define _123 -abc DO WORD IF Case sizeof 5. 下列符号中,不属于转义字符的是()。B A.\\ B.\0xAA C.\t D.\0 6. 不属于C语言关键字的是()。d A.int B.break C.while D.character 7. 是C语言提供的合法关键字的是()。b A.Float B.signed C.integer D.Char 8. 以下不能定义为用户标示符的是()。b A.scanf B.Void C._3com_ D.int 9. 一个C程序是由()。 b A.一个主程序和若干子程序组成 B.一个或多个函数组成 C.若干过程组成 D.若干子程序组成 10. C语言程序的基本单位是()。 c A.程序行 B.语句 C.函数 D.字符 11. 下列说法中,错误的是()。 a A.每个语句必须独占一行,语句的最后可以是一个分号,也可以是一个回车换行符号B.每个函数都有一个函数头和一个函数体,主函数也不例外 C.主函数只能调用用户函数或系统函数,用户函数可以相互调用 D.程序是由若干个函数组成的,但是必须有、而且只能有一个主函数 12. 以下说法中正确的是()。 c A.C语言程序总是从第一个定义的函数开始执行 B.在C语言程序中,要调用的函数必须在main( )函数中定义 C.C语言程序总是从main( )函数开始执行

(完整版)C语言试题及答案解析

C语言 一、选择题(第题2分,共20分) 1.一个C程序的执行是从 A 。 A) 本程序的main函数开始,到main函数结束 B) 本程序文件的第一个函数开始,到本程序文件的最后一个函数结束 C) 本程序文件的第一个函数开始,到本程序main函数结束 D) 本程序的main函数开始,到本程序文件的最后一个函数结束 2.若x、i、j、k都是int型变量,则计算下面表达式后,x的值为 C 。 x=(i=4,j=16,k=32) A) 4 B) 16 C) 32 D) 52 3.设C语言中,一个int型数据在内存中占2个字节,则unsigned int 型数据的取值范围为 C 。 A) 0~255 B) 0~32767 C) 0~65535 D) 0~2147483647 4.设有说明:char w; int x; float y; double z;则表达式w*x+z-y值的数据类型为 D 。 A) float B) char C) int D) double 5. putchar函数可以向终端输出一个 D 。 A) 整型变量表达式 B) 实型变量值 C) 字符串 D) 字符或字符型变量值 6. printf函数中用到格式符%5s,其中数字5表示输出的字符串占用5列。如果字符串长度大于5,则输出按方式 B ;如果字符串长度小于5,则输出按方式 C 。 A) 从左起输出该字符串,右补空格 B) 按原字符长从左向右全部输出 C) 右对齐输出该字符串,左补空格 D) 输出错误信息 7.判断char型变量ch是否为大写字母的正确表达式是 C 。 A) ‘A’<=ch<=‘Z’ B) (ch>=‘A’)&(ch<=‘Z’) C) (ch>=‘A’)&&(ch<=‘Z’) D) (‘A’<= ch)AND(‘Z’>= ch) 8.已知int x=10,y=20,z=30;以下语句执行后x,y,z的值是 B 。 if(x>y) z=x; x=y; y=z; A) x=10, y=20, z=30 B) x=20, y=30, z=30 C) x=20, y=30, z=10 D) x=20, y=30, z=20 9.以下程序段______C__. x=-1; do{ x=x*x; } while(!x); A)是死循环 B)循环执行二次 C)循环执行一次 D)有语法错误 10.以下正确的描述是___B____. A)continue语句的作用是结束整个循环的执行

C语言实训题目及要求2020

C语言实训题目 第一题、每组从下面的5个题目中选择一个完成。 1、猜数游戏 涉及知识点:循环、随机数操作。 计算机“想”一个数([1,100])请人猜,如果猜对了,提示正确信息;否则告诉所猜的数是大还是小,同时提示下一次猜数的范围,直到猜对结束,最后给出游戏者猜测的次数。要求,程序以菜单方式工作。 2、显示万年历 涉及知识点:循环、格式化输出。 设计一个程序实现万年历的显示,要求: (1)输入一个年份(1900-2040),在屏幕上输出该年的日历。 (2)输出年历时,以月份和星期做表头。 (3)系统以菜单方式工作。 3、显示月历 涉及知识点:循环、格式化输出。 设计一个程序实现月历的显示,要求: (1)输入年月信息,在屏幕上输出该月的日历。 (2)输出日历时,以月份和星期做表头。 (3)系统以菜单方式工作。 4、英文单词统计助手 涉及知识点:循环、字符串数组(二维字符数组)、一维字符数组、数组元素的排序。 设计一个程序实现英文短文单词的统计任务,要求: (1)输入若干行英文,语句之间用逗号,句点分隔,单词之间用空格分隔。 (2)统计并输出单词的总数。 (3)统计各英文字符出现的次数(标点符号及空格不统计),并按出现的次数降序输出。(4)系统以菜单方式工作。 5、简单文本编辑器 涉及知识点:循环、字符串数组(二维字符数组)、一维字符数组、字符串处理函数。 设计一个程序实现英文文本的编辑,要求: (1)输入若干行英文,语句之间用逗号,句点分隔,单词之间用空格分隔。 (2)单词的查找:输入一个单词,查找该单词在短文中出现的次数及所在的行数和列数。(3)单词的替换:输入一个单词,在文中查找该单词,并将其替换为新单词。 (4)大小写转换:将文中的所有单词转换为大写或小写。 (5)系统以菜单方式工作。 第二题、每组从下面的4个题目中选择一个完成。(每个题目最多限选3次) 6、简单数学测验 涉及知识点:循环、文本文件操作、格式化读写文件、随机数、全局变量。

C语言程序设计 复习题库

一、填空 1. break 语句通常用于switch // 循环中。 2. C 语言对数组下标的引用一般从0 开始。 3. C 语言中,一个函数一般由两个部分组成,它们是函数首部和函数体。 4. C 标准库函数中,字符串的处理函数包含在string.h 头文件中,数学函数包含在 math.h 头文件中。 5. C 程序的运行需要经过编译和链接两步进行。 6. C 程序中用/**/ 括起来的内容是程序的注释语句。 7. C 语言函数是由函数首部和函数体两部分组成。其中,函数首部包括函数类型、函数 名和函数参数。 8. C 语言提供的三种逻辑运算符是& ,// ,!。 9. C 语言源程序经过编译后,生成文件的后缀名是.c 。 10. C 语言源程序经过连接后,生成文件的后缀名是.exe 。 11. C 语言中,关系表达式和逻辑表达式的值是1//0 。 12. C 语言中的标识符只能由三种字符组成,他们是字母,数字,下划线。 13. C 语言中的每条基本语句以;作为结束符,每条复合语句以} 作为结束符。 14. C 语言中函数返回值的类型是由函数类型决定的。 15. C 源程序的基本单位是函数。 16. int a = 2, b = 3; 表达式 a > b ? a ++ : ++ b 的值为 4 。 17. int x=1,y=1,z=1; x+=y+=z; 则表达式xb>c 的值是0 。 19. 定义一个指针p,它指向一个有 6 个整型元素的一维数组,定义语句为int *p=a[6] ; 。 20. 定义一个指针数组p ,它有 4 个元素,每个指针指向一个整型数据,定义语句为int *p[4]; 。 21. 赋值语句是由= 加上一个分号构成。 22. 构成数组的各个元素必须具有相同的类型。 23. 关系表达式x+y>5 的相反表达式为x+y !>5 。 24. 函数strlen("1234\0xy") 的值为:9 。 25. 函数的形参在未被调用前不分配空间,函数形参的数据类型要和实参相同。 26. 函数体用{ 开始,用} 结束。 27. 结构化设计中的三种基本结构是顺序,选择,循环。

C语言1-5章复习题及参考答案

一.选择题 1、若a为int类型,且其值为3,则执行完表达式a+=a-=a*a后,a的值是()。 A .-3 B.9 C.-12 D.6 2、若有定义:int a=8, b=5, c; 执行语句 c=a/b+0.4; 后,c的值为()。 A .1.4 B.1 C.2.0 D.2 3、有如下程序: void main() { int i,sum; for(i=1;i<=3;sum++) sum+=i; printf("%d\n",sum); } 该程序的执行结果是()。 A .6 B.3 C.死循环 D.0 4、下列关于表达式的描述中,错误的是()。 A . 常量和变量都是表达式。 B. 运算符类型对应表达式的类型。 C. 每一个表达式都有自己的值。 D. 表达式必须以分号结尾。 5、C语言中,合法的长整型常数是()。 A . '\t' B.” A” C.65 D.a 6、若已定义 x 和 y为double 类型,则表达式 x=1;y=(x+3)/2 的值是()。 A .1 B.2 C.2.00000 D.2.50000 7、表达式:10!=9的值是()。 A . true B. 非零值 C.0 D.1 8、以下程序的输出结果是()。 #include void main() { printf("%d\n", NULL); } A . 不确定的 B.0 C.-1 D.1 9、请选出合法的C语言赋值语句。() A . a=b=58 B.i++; C. a=58,b=58 D. k=int(a+b); 10、假设 int b=2; 表达式(b>>2)/(b>>1)的值是()。 A .0 B.2 C.4 D.8 11、关于语句printf(“hello world\n”);,下列描述中错误的是()。 A . printf()是格式化输出函数,用于输出信息。 B. printf()括号中的内容为函数的参数。 C. printf()括号中的内容会全部输出到控制台上。 D. \n表示换行操作。 12、下列选项中,哪一项不是C语言中的位运算符()。 A .& B.|| C.~ D.^ 13、以下程序的输出结果是()。 void main()

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;

C语言练习题(带答案)-绝对经典题目不看后悔

1单选题 1.(A)是构成C语言程序的基本单位。 A、函数 B、过程 C、子程序 D、子例程 2.C语言程序从C开始执行。 A) 程序中第一条可执行语句B) 程序中第一个函数 C) 程序中的main函数D) 包含文件中的第一个函数 3、以下说法中正确的是(C)。 A、C语言程序总是从第一个定义的函数开始执行 B、在C语言程序中,要调用的函数必须在main( )函数中定义 C、C语言程序总是从main( )函数开始执行 D、C语言程序中的main( )函数必须放在程序的开始部分 4.下列关于C语言的说法错误的是(B)。 A) C程序的工作过程是编辑、编译、连接、运行 B) C语言不区分大小写。 C) C程序的三种基本结构是顺序、选择、循环 D) C程序从main函数开始执行 5.下列正确的标识符是(C)。 A.-a1 B.a[i] C.a2_i D.int t 5~8题为相同类型题 考点:标识符的命名规则 (1)只能由字母、数字、下划线构成 (2)数字不能作为标识符的开头 (3)关键字不能作为标识符 选项A中的“-” ,选项B中“[”与“]”不满足(1);选项D中的int为关键字,不满足(3) 6.下列C语言用户标识符中合法的是(B)。 A)3ax B)x C)case D)-e2 E)union 选项A中的标识符以数字开头不满足(2);选项C,E均为为关键字,不满足(3);选项D中的“-”不满足(1); 7.下列四组选项中,正确的C语言标识符是(C)。 A)%x B)a+b C)a123 D)123 选项A中的“%” ,选项B中“+”不满足(1);选项D中的标识符以数字开头不满足(2) 8、下列四组字符串中都可以用作C语言程序中的标识符的是(A)。 A、print _3d db8 aBc B、I\am one_half start$it 3pai C、str_1 Cpp pow while D、Pxq My->book line# His.age 选项B中的“\”,”$” ,选项D中“>”,”#”,”.”,”-”不满足(1);选项C中的while为关键

C语言实训题目

2011秋季C语言实训题目 1.学生成绩管理系统 功能要求: (1)可以从文件导入或录入多名学生的多门课程的学习成绩; (2)完成按姓名查找学生记录,并显示; (3)排序功能:按学生平均成绩进行排序; (4)插入功能:按平均成绩高低插入一条学生记录; (5)要求使用结构体,录入结果存放到文件; 显示要求: 程序输出菜单,用户按照提示操作,最终得到操作结果。 2.个人通讯录 功能需求: (1)可以对多名人物的信息进行输入; (2)显示所有的记录信息,若无记录,则给出提示信息; (3)可以按姓名查询该记录的有关信息; (4)可以按姓名对任意一种记录信息进行删除; (5)可以任意修改记录信息 (6)通过文件储存所输入的记录; (7)可以通过一个文件读入已有的通信录记录; 显示要求: 程序输出菜单,用户按照提示操作,最终得到操作结果。 3. 火车订票系统 功能要求: (1)列车原始信息从文件导入或从控制台录入,包括车次、票数等; (2)可以按车次进行列车信息查询; (3)客户对某一天订票,订票成功后,当日的票数需要被更改; (4)客户退票; (5)要求使用结构体; 显示要求: 程序输出菜单,用户按照提示操作,最终得到操作结果。 4、万年历系统 功能要求: (1)从2000年开始,用户输入年份与月份,将显示出该年该月份的日历,对应的星期。

(2)注意闰年情况 显示格式要求如下: (1)第一行显示月份(中英文都可以) (2)下一行显示星期,从周日到周六,中英文都可以 (3)下一行开始显示日期从1号开始,并按其是星期几实际情况与上面的星期数垂直对齐(4)程序输出菜单,用户按照提示操作,最终得到计算结果。 5、积分的实现 功能要求: (1)使用复合梯形公式求解函数f=1+x2、f=log(1+x)以及f=1/(1+x2)三个函数的定积分。(2)积分上下限及步长由C语言函数参数传递。 (3)用户输入函数编号,上下限和步长,程序输入结果。 显示要求: 程序输出菜单,用户按照提示操作,最终得到计算结果。 6、矩阵的运算 功能要求: 使用三个C语言函数分别实现两个矩阵的加、减和相乘功能。结果存放在第三个矩阵中。并编写程序验证三个函数功能。 每个函数的参数可选择(1):二位数组名,行数,列数 (2)指针变量名,行数,列数 返回值:用户自定义的运算状态,正常或其他异常情况。 显示要求: 程序输出菜单,用户按照提示操作,最终得到计算结果。 7. 链表的实现 编制一个程序,实现下面的要求 1. 程序启动后显示主菜单,包括下面的选项: 1. 链表查看 2. 插入节点 3. 删除节点 4. 链表存盘 5. 从文件调入 6. 退出 按下相应的数字键后进入各自的子功能 2. 每个子功能执行完毕后,返回并显示主菜单 3. 功能说明: 1. 链表查看:从头结点向后依次显示各结点中保存的数据 2. 插入节点:创建一个结点,输入新结点的数据,以及要插入的位置,将新结点插 入到链表中。 3. 删除节点:输入要删除的数据,从头结点依次查找,找到拥有该数据的结点后,

C语言程序设计期末考试试题(含答案)

C语言程序设计 期末考试试题及其答案 一、单项选择题(本大题共20题,每题2 分,共40分) 1、以下不是C语言的特点的是( ) A、C语言简洁、紧凑 B、能够编制出功能复杂的程序 C、C语言可以直接对硬件进行操作 D、C语言移植性好 2、以下不正确的C语言标识符是( ) A、ABC B、abc C、a_bc D、ab.c 3、一个C语言程序是由( ) A、一个主程序和若干子程序组成 B、函数组成 C、若干过程组成 D、若干子程序组成 4、一个算法应该具有“确定性”等5个特性,对另外4个特性的描述中错误的是( ) A、有零个或多个输入 B、有零个或多个输出 C、有穷性 D、可行性 5、设变量a是整型,f是实型,i是双精度型,则表达式10+‘a’+i*f值的数据类型为( ) A、int B、float C、double D、不确定 6、在C语言中,char型数据在内存中的存储形式是( ) A、补码 B、反码 C、源码 D、ASCII码 7、有如下程序,输入数据:12345M678<cR>后(表示回车),x的值是( ) 。 #include main(){ int x; float y; scanf("%3d%f",&x,&y); } A、12345 B、123 C、45 D、345 8、若有以下定义int a,b; float x,则正确的赋值语句是( ) A、a=1,b=2 B、b++; C、a=b=5 D、b=int(x); 9、以下程序的执行结果是( )

#include { int i=10,j=10; printf("%d,%d\n",++i,j--); } A、11,10 B、9,10 C、11,9 D、10,9 10、巳知字母A的ASCII码是65,以下程序的执行结果是( ) #include main() { char c1='A',c2='Y'; printf("%d,%d\n",c1,c2); A、A,Y B、65,65 C、65,90 D、65,89 11、下列运算符中优先级最高的是( ) A、< B、十 C、% D、!= 12、设x、y和z是int型变量,且x=3,y=4,z=5,则下面表达式中值为0是( ) 。 A、’x’&&’y’ B、x<=y C、x||y+z&&y-z D、!((x<y)&&!z ||1) 13、判断char型变量cl是否为小写字母的正确表达式为( ) A、’a’<=c1<=f’z’ B、(c1>=a)&&(c1<=z) C、(‘a’>=c1) (‘z’<=c1) D、(c1>=’a’)&&(c1<=’z’) 14、字符串"a"在内存中占据的字节个数为( ) A、0 B、 1 C、 2 D、 3 15、下面有关for循环的正确描述是( ) A、for循环只能用于循环次数已经确定的情况 B、for循环是先执行循环体语句,后判定表达式 C、在for循环中,不能用break语句跳出循环体 D、for循环体语句中,可以包含多条语句,但要用花括号括起来 16、下面程序的运行结果是( ) #include main() {int num=0; while(num<=2) {num++; printf(“%d ,num); } } A、 1 B、 1 2 C、 1 2 3

C语言考试复习试题及参考答案

中南大学现代远程教育课程考试复习试题及参考答案 C语言程序设计 一、单项选择题 若以下各题所有库函数都可以合法使用,且变量定义如下: int m=5, i=3,j=2,*p, a=8,b=0; int arr[10]={0,1,2,3,4,5,6,7,8,9},td[ ][3]={1,2,3,4,5,6}; float x=2.5,y=3.0; double z=0; long n=1; char c=’A’,ch[20]={’a’,’b’,’c’,’\0’,’d’,’\0’}; struct student { int num; char name[20]; float score; struct student *next; }st1,st2,*ps;

FILE *fp; 1.若将3和10从键盘输入给变量a、x,输入语句为 scanf(“a=%d,x=%f”,&a,&x);正确的键盘输入是(↙表回车): A a=3,x=10↙ B 3,10↙ C 3 10↙ D 3,10.0↙ 2. 以下不是死循环的语句是: A for ( ;;y+=i++); B while(a) y+=i++ ; C do{ y+=i++}while (a>0); D for (b=0;(c=getchar()!=’\n’);)b++; 3.若p=arr;正确的语句是: A *p=arr[10]; B *p=arr[2*a]; C p=arr[5]; D p[i]=arr[0]; 4.若ps=&st1;则下面描述正确的是: A ps->num与st1->num等价。 B ps.num与st1.num等价。 C ps->num与num等价。 D ps->num与st1.num等价。 5.语句printf(“%d",aj);的输出结果是:

C语言试题库(带答案解析)~排版

一、选择题 1、以下不能定义为用户标识符的是( )。 (A) MAIN (B) _HJ (D) LINE1 2、以下不能定义为用户标识符的是( ) (A) If (B) H_J (D) LINE12 3、下面属于C 语言标识符的是( )。 (A) 2ab (B) @f (C) b 4、下列符号中用来表示C 语言中的回车换行的是( )。 (A) \r (C) \b (D) \t 5、在计算机系统中,可执行程序是( ) (A) 源代码 (B)汇编语言代码 (D) ASCII 码 6、在Visual C++ 环境下,C 源程序文件名的默认后缀是( )。 (A) .obj (B) .txt (D) .doc 7、Microsoft Visual C++ 中,C 语言可执行程序的扩展名是:( ) (B) obj (C) c 或cpp (D) txt 8、C 程序由( )组成。 (A)子程序 (B) 主程序和子程序 (D) 过程 9、C 程序的基本组成单位( )。 (A) 数据类型 (B) 变量和常量 (D) 表达式 10、C 语言中主函数的个数是( )。 (A) 2个 (C) 任意个 (D) 10个 11、一个 C 程序的执行是从( ) (B)本程序文件的第一个函数开始,到本程序文件最后一个函数结束. (C)本程序文件的第一个函数开始,到本程序main 函数结束. (D) 本程序的main()函数开始,到本程序文件的最后一个函数结束. 12、以下叙述正确的是 (A)在C 语言程序中,main 函数必须放在其他函数的最前面 (C)在C 语言程序中,只有main 函数才可单独进行编译 (D)每个后缀为.C 的C 语言源程序都应该包含一个main 函数 13、设变量a 是整型,b 是实型,c 是双精度型,则表达式2+’a’+b*c 值的数据类型是( )。 (A) int (B) float 14、以下选项中表示一个合法的常量是(说明:符号□表示空格) A) 9□9□9 C) D) 15、以下选项中非法的字符常量是 A)'\102' B)'\65' C)'\xff' 16、以下选项中,能表示逻辑值“假”的是 A)1 B) D) 17、下列关系表达式中,结果为“假”的是 A)(3+4)>6 C) 3<=4||3 D)(3<4)==1 18、关于C 语言变量,以下说法不正确的是( ) (A) 变量名由程序员定义,必须符合标识符的命名规则。 (B) 变量是程序运行过程中其值可以改变的量。 (D) 变量命名时应尽量做到见名知意。 19、关于C 语言中数的表示,以下叙述正确的是 B)只要在在允许范围内整型和实型都能精确表示 C)只有实型数在允许范围内能精确无误的表示,整型数会有误差 D)只有八进制表示的数在不会有误差 20、设有语句int a=3;,则执行了语句a+=a=a*a;后,变量a 的值是 。 A .3 B .0 C .9 21、在C 语言中,要求运算数必须是整型的运算符是 。 B ./ C .< D .! 22、C 语言中最简单的数据类型包括 。 A .整型、实型、逻辑型 C .整型、字符型、逻辑型 D .整型、实型、逻辑型、字符型 23 、在C 语言中,合法的字符型常量是 。 B ."A" C .65 D .A 24、若已定义x 和y 为double 型变量,则表达式x=1 ,y=x+3/2的值是 。 A .1 B .2 D . 25、设正x 、y 均为整型变量,且x=10,y=3,则以下语句的输出结果是 。 printf("%d,%d\n",x--,--y); A .10,3 B .9,3 C .9,2 26、若有定义int a=8,b=5,C;,执行语句C=a/b+;后,C 的值为 。 A . C . D .2 27、以下选项中,不正确的赋值语句是 。 A .++t; B .n1=(n2=(n3=0)); C .k=i==j; 28、设x 和y 均为 int 型变量,则语句:x+=y,y=x-y;x-=y;的功能是 。 A .把x 和y 按从大到小的顺序排列 B .把x 和y 按从小到大的顺序排列 C .无确定结果 29、以下程序的输出结果是 。 #include <> main() { char c='z'; printf("%c",c-25); } B .Z C .z-25 D .y 30、已知字母A 的ASCII 码为十进制数的65,以下程序的输出结果是 。 #include <> main() { char ch1,ch2; ch1='A'+'5'-'3'; ch2='A'+'6'-'3'; printf("%d,%c\n",ch1,ch2); B .B,C C .C,D D .不确定的值 31、若k 是int 型变量,则以下程序片段的输出结果是 。 k=-3; if(k<=0) printf("####"); printf("&&&&"); B .&&&& C .####&&&& D .有语法错误,无输出结果 32、关于以下程序,说法正确的是 。 #include <> main()

C语言实训项目分析及源码

防灾科技学院 实习报告书 防灾科技学院灾害信息工程系 2015年制

项目一C语言实习 一、实习目的 本课程是网络工程专业的一门专业必修课程,是学生学习完C语言程序设计专业基础课程后,进一步学习其他专业课程前必须完成的一项实践教学环节。 本次实习通过1个综合性强、实用性强、趣味性强的应用实例,使学生进一步巩固C语言基本知识,掌握应用程序设计语言描述问题、分析问题和解决问题的方法和思想,为后继的面向对象程序设计、数据结构、Web应用技术、网络工程专业实习、网络工程生产实习、网络工程毕业实习课程等课程打下基础。 通过本课程的学习,使学生进一步明确学习目标、增强学习动力、培养学习兴趣。 二、实习任务概述 任务一:员工工资管理系统的设计与实现 本系统基于C语言,实现了一个小型的信息管理系统,主要包括以下功能: 1.信息的录入: a)首次进入系统,可以添加职工的工号、姓名、基 本工资、津贴、员工奖金等数据录入操作。 b)系统再次登录,可以从文件导入信息,也可以对 文件内容进行修改,保存退出。 2.删除操作:对离职的员工信息要从系统里删除。 3.显示操作:将结构体中职工信息输出到屏幕上。 4.查询与修改操作:分别按职工工号和职工姓名查询,修改职工信息并保存。 5.统计与排序操作:分别统计所有员工的总工资,实现对总工资的排序。 三、实习所用软件简介 VC++6.0是Microsoft公司推出的一个基于Windows系统平台、可视化的集成开发环境,它的源程序按C++语言的要求编写,并加入了微软提供的功能强大的MFC(Microsoft Foundation Class)类库。使用VC++提供的高度可视化的应用程序开发工具和MFC类库,可使应用程序开发变得简单。 使用VC++提供的高度可视化的应用程序开发工具和MFC类库,可使应用

C语言程序设计考试题库

一、判断题 1、所谓常量,就是在程序运行过程中其值可以改变的量。() 2、一个C程序可以由多个源程序文件构成,但其中只能有一个main()函数。() 3、在C语言中do-while 语句和for循环均是先执行循环体语句,再判断表达式。() 4、在函数调用中将变量的地址作为实参传递给对应形参时,实现的是单向的值传递。() 5、C语言中所有字符串都是以‘\0’结束的。() 6、do-while构成的循环语句中的循环体最少执行1次。() 7、数组名在C语言中表示的是数组的首地址。() 8、使用gets()函数输入字符串时可以在字符串中输入空格。() 9、算术运算符中‘/’的优先级高于‘%’。() 10、char a[5];该语句表明数组a中的第五个元素为a[5]。() 11、C语言源程序文件的扩展名均为.c。() 12、char a[5];数组a中有a[1]、a[2]、a[3]、a[4]、a[5]共5个元素。() 13、C语言程序区分大小写,字符常量必须定义为大写。() 14、若int i=10,j=2;则执行i*=j+8;后i的值为28。() 15、若int x=100,y=200;则语句printf("%d",(x,y));输出结果为100。() 16、c语言中的标识符只能由字母,数字和下划线三种字符组成。() 17、函数getchar()的作用是:输出一个字符。() 18、一个C语言程序总是从第一个函数开始执行。() 19、在c语言中,char型数据在内存中是以ASCII码形式存储的。() 20、在C语言中switch语句必须使用break语句。() 二、选择题 1、以下说法正确的是()。 A、C语言程序总是从第一个函数开始执行。 B、C语言程序中要调用的函数必须在main()函数中定义。 C、C语言程序总是从main()函数开始执行。

C语言面试题及答案

1、局部变量能否和全局变量重名? 答:能,局部会屏蔽全局。要用全局变量,需要使用"::" 局部变量可以与全局变量同名,在函数内引用这个变量时,会用到同名的局部变量,而不会用到全局变量。对于有些编译器而言,在同一个函数内可以定义多个同名的局部变量,比如在两个循环体内都定义一个同名的局部变量,而那个局部变量的作用域就在那个循环体内。 2、如何引用一个已经定义过的全局变量? 答:extern 可以用引用头文件的方式,也可以用extern关键字,如果用引用头文件方式来引用某个在头文件中声明的全局变理,假定你将那个变写错了,那么在编译期间会报错,如果你用extern方式引用时,假定你犯了同样的错误,那么在编译期间不会报错,而在连接期间报错。 3、全局变量可不可以定义在可被多个.C文件包含的头文件中?为什么? 答:可以,在不同的C文件中以static形式来声明同名全局变量。 可以在不同的C文件中声明同名的全局变量,前提是其中只能有一个C文件中对此变量赋初值,此时连接不会出错 4、语句for( ;1 ;)有什么问题?它是什么意思? 答:和while(1)相同。 5、do……whi le和while……do有什么区别? 答:前一个循环一遍再判断,后一个判断以后再循环 6、请写出下列代码的输出内容 以下是引用片段: #include main() { int a,b,c,d; a=10; b=a++; c=++a; d=10*a++; printf("b,c,d:%d,%d,%d",b,c,d); return 0; }

答:10,12,120 7、static全局变量与普通的全局变量有什么区别?static局部变量和普通局部变量有什么区别?static函数与普通函数有什么区别? 全局变量(外部变量)的说明之前再冠以static 就构成了静态的全局变量。全局变量本身就是静态存储方式,静态全局变量当然也是静态存储方式。这两者在存储方式上并无不同。这两者的区别虽在于非静态全局变量的作用域是整个源程序,当一个源程序由多个源文件组成时,非静态的全局变量在各个源文件中都是有效的。而静态全局变量则限制了其作用域,即只在定义该变量的源文件内有效,在同一源程序的其它源文件中不能使用它。由于静态全局变量的作用域局限于一个源文件内,只能为该源文件内的函数公用,因此可以避免在其它源文件中引起错误。 从以上分析可以看出,把局部变量改变为静态变量后是改变了它的存储方式即改变了它的生存期。把全局变量改变为静态变量后是改变了它的作用域,限制了它的使用范围。 static函数与普通函数作用域不同。仅在本文件。只在当前源文件中使用的函数应该说明为内部函数(static),内部函数应该在当前源文件中说明和定义。对于可在当前源文件以外使用的函数,应该在一个头文件中说明,要使用这些函数的源文件要包含这个头文件 static全局变量与普通的全局变量有什么区别:static全局变量只初使化一次,防止在其他文件单元中被引用; static局部变量和普通局部变量有什么区别:static局部变量只被初始化一次,下一次依据上一次结果值; static函数与普通函数有什么区别:static函数在内存中只有一份,普通函数在每个被调用中维持一份拷贝 8、程序的局部变量存在于(堆栈)中,全局变量存在于(静态区)中,动态申请数据存在于( 堆)中。 9、设有以下说明和定义: typedef union {long i; int k[5]; char c;} DATE; struct data { int cat; DATE cow; double dog;} too; DATE max; 则语句printf("%d",sizeof(struct date)+sizeof(max));的执行结果是:___52____ 答:DATE是一个union, 变量公用空间. 里面最大的变量类型是int[5], 占用20个字节. 所以它的大小是20 data是一个struct, 每个变量分开占用空间. 依次为int4 + DATE20 + double8 = 32.

相关文档
最新文档