《C语言程序设计》综合练习题与答案
《C语言程序设计》练习题及答案

《C语言程序设计》练习题及答案1. 单选题1. 设有定义:int n=0,*p=&n,**q=&p,则下列选项中正确的赋值语句是A. p=1;B. *q=2;C. q=p;D. *p=5;正确答案:D2. 设有int x=11;则表达式(x++*1/3)的值是A. 3B. 4C. 11D. 12正确答案:A3. 下面程序的输出结果是main(){ int a[10]={1,2,3,4,5,6,7,8,9,10},*p=a; printf("%d\n",*(p+2));}A. 3B. 4C. 1D. 2正确答案:A4. sizeof(float)是A. 一个双精度型表达式B. 一个整型表达式C. 一种函数调用D. 一个不合法的表达式正确答案:B5. 在16位C编译系统上,若定义long a;,则能给a赋40000的正确语句是A. a=20000+20000;B. a=4000*10;C. a=30000+10000;D. a=4000L*10L正确答案:D6. 请选出以下语句的输出结果printf("%d\n",strlen("\t\"\065\xff\n"));A. 5B. 14C. 8D. 输出项不合法,无正常输出正确答案:A7. 若x,i,j和k都是int型变量,则计算表达式x=(i=4,j=16,k=32)后,x的值为A. 4B. 16C. 32D. 52正确答案:C8. 下面能正确进行字符串赋值操作的是A. char s[5]={"ABCDE"};B. char s[5]={ ′A′, ′B′, ′C′, ′D′, ′E′};C. char *s;s="ABCDE";D. char *s;char a; scanf("%s",&s);正确答案:C9.以下程序的输出结果是#include "stdio.h"void reverse(int a[],int n){int i,t;for(i=0;i<n/2;i++){t=a[i];a[i]=a[n-1-i];a[n-1-i]=t;}}main(){int b[10]={1,2,3,4,5,6,7,8,9,10};int i,s=0;reverse(b,8);for(i=6;i<10;i++) s+=b[i];printf("%d\n",s);}A. 22B. 10C. 34D. 30正确答案:A10. 以下不正确的叙述是A. 在C程序中,逗号运算符的优先级最低B. 在C程序中,APH和aph是两个不同的变量C. 若a和b类型相同,在计算了赋值表达式a=b后b中的值将放入a中,而b中的值不变D. 当从键盘输入数据时,对于整型变量只能输入整型数值,对于实型变量只能输入实型数值正确答案:D2. 多选题11. 以下______是正确的转义字符。
C语言程序设计试题及参考答案

C语言程序设计一、选择题(共40分,每小题2分)1、以下叙述不正确的是(D)A、一个C源程序可由一个或多个函数组成B、一个C源程序必须包含一个main函数C、C程序的基本组成单位是函数D、在C程序中,注释说明只能位于一条语句的后面2、下列四个选项中,是不合法的用户标识符的选项是(B)A、abcB、12ACC、sunD、A3、设有语句inta=4;则执行了语句a+=a-=a*a后,变量a的值是(A)A、-24B、0C、4D、164、下列运算符中优先级最高的是(B)A、<B、+C、&&D、==5、在C语言中,运算对象必须是整型数的运算符是(A)A、%B、/C、%和/D、+6、以下关于运算符的优先顺序的描述正确的是(C)A、关系运算符<算术运算符<赋值运算符<逻辑与运算符B、逻辑与运算符<关系运算符<算术运算符<赋值运算符C、赋值运算符<逻辑与运算符<关系运算符<算术运算符D、算术运算符<关系运算符<赋值运算符<逻辑与运算符7、在C语言中,如果下面的变量都是int类型,则输出的结果是(C)sum=pad=5;pAd=sum++,pAd++,++pAd;printf(“%d\n”,pad);A、7B、6C、5D、48、x、y、z被定义为int型变量,若从键盘给x、y、z输入数据,正确的输入语句是(B)A、INPUTx、y、z;B、scanf(“%d%d%d”,&x,&y,&z);C、scanf(“%d%d%d”,x,y,z);D、read(“%d%d%d”,&x,&y,&z);9、假定从键盘输入23456<回车>,下面程序的输出结果是:(C)voidmain(){intm,n;scanf(“%2d%3d”,&m,&n);printf(“m=%dn=%d\n”,m,n);}A、m=23n=45B、m=234n=56C、m=23n=456D、语句有错误10、若运行时,给变量x输入12,则以下程序的运行结果是(A)main(){intx,y;scanf(“%d”,&x);y=x>12?x+10:x-12;printf(“%d\n”,y);}A、0B、22C、12D、1011、C语言中while和do-while循环的主要区别(A)A、do-while的循环体至少执行一次B、while的循环控制条件比do-while的循环控制条件严格C、do-while允许从外部转到循环体内D、do-while的循环体不能是复合语句12、以下对二维数组的正确说明的语句是(C)A、inta[3][]B、floata(3,4)C、doublea[3][4]D、floata(3)(4)13、以下程序的输出结果是(C)main(){inti,x[3][3]={1,2,3,4,5,6,7,8,9};for(i=0;i<3;i++)printf(“%d”,x[i][2-i]);}A、1,5,9B、1,4,7C、3,5,7D、3,6,914、以下能对一维数组a进行正确初始化的语句是(C)A、inta[10]=(0,0,0,0,0);B、inta[10]={};C、inta[10]={0};D、inta[10]={10*1};15、以下程序执行后的输出结果是:(A)intfun(inta,intb,intc){a=456;b=567;c=678;}voidmain(){intx=10,y=20,z=30;z=fun(x,y,z);printf(“%d,%d,%d\n”,z,y,x);}A、30,20,10B、10,20,30C、10,30,50D、10,30,4016、以下说法正确的是(A)如果在一个函数中的复合语句中定义了一个变量,则该变量A、只在该复合语句中有效B、在该函数中有效C、在本程序范围内有效D、为非法变量17、以下函数调用语句中含有的实参个数为(B)func((exp1,exp2,exp3),(exp4,exp5));A、1B、2C、4D、518、在C语言程序中,以下说法正确的是(B)。
C语言程序设计综合练习题

《C语言程序设计》综合练习题一、单选题1. C语言中基本数据类型有。
CA)整型、实型、逻辑型B)整型、字符型、逻辑型C)整型、实型、字符型D)整型、实型、字符型、逻辑型2. 在C语言中,数字O29是一个。
AA)八进制数 B)十进制数 C)十六进制数 D)非法数3. 在以下关于C语言的不严格的叙述中,错误的说法是。
AA)在标识符中,大写字母和小些字母的意义相同B)有些不同类型的变量可以在一个表达式中运算C)在赋值表达式中等号“=”左边的变量和右边的值可以是不同类型D)同一个运算符号在不同的场合可以有不同的含义4.下列关于C语言用户标识符的叙述中正确的是。
BA)用户标识符中可以出现下划线和中划线(减号)B)用户标识符中不可以出现中划线,但可以出现下划线C)用户标识符中可以出现下划线,但不可以放在用户标识符的开头D)用户标识符中可以出现下划线和数字,它们都可以放在用户标识符的开头【解析】考查C语言中的用户标识符规则,在C语言程序设计中,用户标识符是由字母、数字和下划线组成的,并且第一个字符必须是字母或下划线。
5. 结构化程序设计方法中有三种基本控制结构,以下不正确的是。
DA) 顺序结构B) 选择结构C) 循环结构 D) 数组结构6. C语言提供的合法关键字是。
DA) swicth B) cha C) Case D) default7.以下非法的赋值语句是CA) n=(i=2,++i); B)j++; C) ++(i+1); D)x=j>0;【解析】对表达式不能进行自加自减运算。
8.在以下一组运算符中,优先级最高的运算符是。
A) <= B) = C) % D) &&【解析】C语言常用的积累运算符的优先级关系是:逻辑非“!”>算术运算符>关系运算符>逻辑与“&&”>逻辑或“||”>赋值运算符>逗号运算符。
由于C选项为求余运算符,所以本题正确答案为C选项。
国家开放大学《C语言程序设计》综合练习题参考答案

国家开放大学《C语言程序设计》综合练习题参考答案综合练习1一、单选题(每小题2分,共20分)1.在每个C语言程序中都必须包含有这样一个函数,该函数的函数名为。
a.mainc.MAINd.function2.每个C语言程序文件的编译错误分为()类。
a.2b.4c.3d.13.字符串"a+b=12\n"的长度为()。
a.6b.9c.8d.74.在switch语句的每个case块中,假定都是以break语句结束的,则此switch 语句容易被改写为()语句。
a.whileb.ifc.ford.do5.在下面的do-while循环语句中,其循环体语句被执行的次数为()。
int i=0; do i++; while(i<10);a.4b.5c.10d.36.将两个字符串连接起来组成一个字符串时,选用的函数为()。
a.strcmp()b.strcat()c.strlen()d.strcap()7.若用数组名作为函数调用的实参,传递给形参的是()。
a.数组元素的个数b.数组中全部元素的值c.数组中第一个元素的值d.数组的首地址8.假定a为一个整数类型的数组名,整数类型的长度为4,则元素a[4]的地址比a 数组的首地址大( )个字节。
a.32b.16c.8d.49.假定s被定义为指针类型char *的变量,初始指向的字符串为"Hello world!",若要使变量p指向s所指向的字符串,则p应定义为()。
a.char *p=s;b.char *p;p=*s;c.char *p=&s;d.char *p; p=&s;10.从一个数据文件中读入以换行符结束的一行字符串的函数为()。
a.fgets()b.fgetc()c.gets()d.getc()二、填空题(每小题2分,共26分)11.C语言中的每条简单语句以(分号)作为结束符。
12.C程序中的所有预处理命令均以(#)字符开头。
(完整版)C语言程序设计题库及答案,推荐文档

D.a2_b 19 . 以下叙述中错误的是__A___。 A.用户所定义的标识符允许使用关键字 B.用户所定义的标识符应尽量做到“见名知意 C.用户所定义的标识符必须以字母或下划线开头 D.用户定义的标识符中,大、小写字母代表不同标识 20 . C 语言程序中,下列( C)组标识符是合法。 A.abc、2id、while B.4d、DO、oodb
B.二进制
C.十进制
D.八进制
3 . 以下不正确的 C 语言标识符是(C )。
A.AB1
B._ab3
C.4ab
D.a2_b
4 . 以下运算符中优先级最低的运算符是_D____。
A.&&
B.& C.||
D.=
5 . 在 C 语言中,要求运算数必须是整型的运算符是___A___。
A.%
B./ C.<
D.!
12 . 以下说法不正确的是__D___。 A.在 C 程序中,逗号运算符的优先级最低 B.在 C 程序中,aph 和 aPh 是两个不同的变量 C.若 a 和 b 类型相同,在计算了赋值表达式 a=b 后 b 中的值将放入 a 中,而 b 中的值不变 D.当从键盘输入数据时,对于整型变量只能输入整型数值,对于实型变量只能输 入实型数 13 . C 语言程序的基本单位是_C______。 A.程序行 B.语句 C.函数 D.字符 14 . C 语言程序中,下列(C )组符合变量命名规则。 A.for、-sub、xy
A.1
B.3
C.2.0
D.2.5
19 . func(exp1,(exp2,exp3),(exp4,exp5,exp6));含有(C )个实参。 A.1 B.2 C.3 D.6 20 . 有 int x=3,y=4,z=5;则下面表达式中值为 0 的是__B____。 A.x&&y B.! (x<y&&!z||1) C.x||y+z&&y-z D.x<=y 21 . 已定义 c 为字符型变量,则下列语句中正确的是____C__。
C语言程序设计练习题(答案)

C语言程序设计练习题(答案)1.1上机实训项目实验1实验步骤1、进入VC环境从“开始”→“程序”→“Microsoft Visual Studio 6.0”→“Microsoft Visual C++ 6.0”,这时进入VC集成环境的主菜单窗口,屏幕显示如图1_1所示。
图1-1 VC集成环境的主菜单窗口2、VC环境下C程序的编辑、连接和运行(1)新建一个源程序①在VC环境中选择“文件”菜单,然后单击“新建”菜单项。
如图1-2所示图1-2 选择新建② 在弹出的新建对话框中设置好相应的内容,如图2-2所示。
要事先准备好保存文件的目录,例d:\lx 目录。
在图1-3中“文件”一栏的源程序文件的扩展名一定要输入C 语言程序的扩展名“.c ”。
设置好后,单击“OK ”,就回到了VC++的编辑界面,即将进行输入和编辑的源程序文件example.c 文件存放在D 盘的LX 目录下。
图1-3 新建对话框的设置③ 在图1-4的工作区中,输入源程序2.设置源程序的文件名,扩展名一定要为“.c ”且一定要输入扩展名1.单击该处3.设置存放目录图1-4 输入、编辑源程序④输入源程序文件后可在主菜单栏中选择“文件”(FILE),并在其下拉菜单中选择“保存”(SAVE),如图1-5所示。
图1-5 保存源程序⑤源程序的编译如图2-6所示,单击主菜单的“编译”(Build),在其下拉菜单中选择“编译example.c”(Compile example.c),或者单击工具栏上的“编译”按钮,如图1-6所示。
在单击“编译”后,屏幕上会出现一个如图1-7所示的对话框。
内容是“This build command requires an activeproject worksapce,Would you like to create a default project worksapce?”,要创建一个默认的项目工作区,单击“是(Yes)”,表示同意,将开始编译;单击“No ”,表示不同意,将取消编译。
C语言程序设计_习题大全(含答案)

C语言程序设计_习题大全(含答案) C语言程序设计_习题大全(含答案)C语言程序设计是计算机科学与技术领域中非常重要的一门课程,对于学习和掌握程序设计的基本原理和方法具有重要意义。
在学习这门课程过程中,习题的练习和掌握是至关重要的一环。
本文将向大家介绍一份包含答案的C语言程序设计习题大全,帮助读者拓宽思路,加深对C语言程序设计的理解。
第一章:基础知识练习习题1:请编写一个C程序,输出"Hello, World!"。
答案:```c#include <stdio.h>int main() {printf("Hello, World!\n");return 0;}```习题2:请编写一个C程序,将两个整数相加并输出结果。
答案:```c#include <stdio.h>int main() {int num1, num2, sum;printf("请输入两个整数:");scanf("%d %d", &num1, &num2);sum = num1 + num2;printf("%d + %d = %d\n", num1, num2, sum);return 0;}```第二章:条件语句练习习题3:请编写一个C程序,判断某年份是否为闰年。
答案:```c#include <stdio.h>int main() {int year;printf("请输入年份:");scanf("%d", &year);if ((year % 4 == 0 && year % 100 != 0) || year % 400 == 0) {printf("%d年是闰年\n", year);} else {printf("%d年不是闰年\n", year);}return 0;}```习题4:请编写一个C程序,判断用户输入的整数是否为正数、负数或者零。
C语言程序设计习题(含答案)

C语言程序设计习题(含答案) C语言程序设计习题(含答案)C语言是一种常用的编程语言,被广泛应用于计算机科学和软件开发领域。
为了帮助学习者更好地掌握C语言的编程技巧,本文提供一些常见的C语言程序设计习题及其答案。
通过完成这些习题,学习者可以锻炼编程思维,加深对C语言的理解,并提高编程能力。
习题一:求两个整数的和题目描述:编写一个程序,计算两个整数的和并输出结果。
解答:```C#include <stdio.h>int main() {int num1, num2, sum;printf("请输入两个整数:");scanf("%d %d", &num1, &num2);sum = num1 + num2;printf("两个整数的和为:%d\n", sum);return 0;}```习题二:计算圆的周长和面积题目描述:编写一个程序,根据用户输入的半径,计算圆的周长和面积,并输出结果。
解答:```C#include <stdio.h>#define PI 3.14159int main() {double radius, circumference, area;printf("请输入圆的半径:");scanf("%lf", &radius);circumference = 2 * PI * radius;area = PI * radius * radius;printf("圆的周长为:%lf\n", circumference);printf("圆的面积为:%lf\n", area);return 0;}```习题三:判断一个数是否为素数题目描述:编写一个程序,判断用户输入的一个正整数是否为素数。
解答:```C#include <stdio.h>int isPrime(int num) {if (num <= 1) {return 0;}for (int i = 2; i * i <= num; i++) {if (num % i == 0) {return 0;}}return 1;}int main() {int num;printf("请输入一个正整数:");scanf("%d", &num);if (isPrime(num)) {printf("%d是素数\n", num);} else {printf("%d不是素数\n", num);}return 0;}```习题四:计算两个矩阵的乘积题目描述:编写一个程序,计算两个3x3的矩阵的乘积并输出结果。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
《C语言程序设计》综合练习题与答案一、简要问答下列问题1.什么是源程序?2.C语言源程序的编译过程是怎样的?3.简述C语言的特点4.C/C++程序都是由函数组成的,其中最主要的、不可缺少的函数是哪一个?举例说明该函数的结构。
5.函数的返回值是通过什么语句来实现的,它的格式是什么?6.在编写C程序时,为什么要把库函数的头文件包含到用户源程序中?如何把用户的头文件包含到用户源程序?7.在计算机中,存储的数据为什么要分成多种不同的数据类型?8.什么是常量?什么是变量?9.C语言的五种基本数据类型有哪些?它们的关键字和所占的字节数分别是什么?10.判断标识符是否合法的三条规则是什么?11.什么是C语言的关键字?关键字对标示符有何影响?12.全局变量和局部变量有什么区别?13.什么是空语句,什么是语句块?14.结构化程序设计的三种基本结构是什么?15.三种循环语句各有什么特点?16.什么叫多重循环结构?17.Continue语句与break语句有什么区别?18.字符与字符串有什么区别?‘b’与“b”相同吗?19.什么是数组?一维数组的定义形式是怎样的?20.字符串的结束标记是什么?21.什么是按位操作?C语言对按位操作有哪些要求?22.什么是指针?指针的两个操作符表示什么意义?23.指针和数组有什么关系?24.指针有那几种算术运算?说明指针变量的算术运算与一般变量的算术运算有何区别?25.函数是由哪三部分组成的?函数定义的一般形式是什么?26.函数原型是什么情况下使用?有什么作用?27.形参和实参有什么关系,函数的两种调用方式是什么?28.什么是函数的递归调用?29.什么是函数指针?说明定义函数指针的一般形式。
30.什么是内部函数?什么是外部函数?31.C语言的四种用户定义数据类型是什么?32.C系统提供的三种主要预处理功能是什么?33.什么是文件包含?34.什么是文件?什么是流?二、写出下列程序段的输出结果(1) int a,b,c=1;for (a=0;a<3;a++)for (b=0;b<=3;b++)c=c+1;printf(“a=%d,b=%d,c=%d\n”,a,b,c);(2) int i=1;do{if (i%10){i=i+1;continue;}printf(“%5d”,i);i++;} While(i<=50);(3) int x=2;there: x=x+1;if (x<6) goto there;printf("x=%d",x);printf("End of program.");(4) int x=1, y=1;while (y<6){x=x*y;y=y+1;}printf("x=%d\n",x);(5) int i,j,x[2][2];for (i=0;i<2;i++) {for (j=0;j<2;j++) {x[i][j]=i十j;printf ("x[%d][%d]=%d",i,j,x[i][j]);}printf("\n");}(6) i nt a[5]={5,4,3,2,1},i=0,x=0;whi1e (i<5){x=a[i]十x;i++;}printf("x=%d\n",x);}(7) m ain( ){int x=10,y=20;printf("result=%d\n",abc(x,y));return 0;}abc(int a,int b){int c;if (b){c=a/b+a;return c;}e1sereturn 0;}(8) m ain( ){int x=10;int i;for (i=0;i<3;i++)printf(“%d”,fun(x));return 0;}fun (int x){static int Z=3;Z=Z+x;return Z;}(9) main( ){int a,b;a=50;b=90;printf("%d\n",(a,b));return 0;}(10) main( ){int a[10]={19,23,44,17,37,28,49,36},*P;P=a;printf("%d\n",(P+=3)[3]);return 0;}(11) main( ){int i=3,j=2;char *a="DCBA";printf("%c%c\n",a[i],a[j])";return 0;}(12) #include <stdio.h>fun(int x){int k;if (x == 0 || x == 1) return(3);k=x-fun(x-2);return k;}main( ){printf("%d\n",fun(9));return 0;}(13) #include <iostream.h>void myFunc( );void rnain( ){int X=5;cout<<"\n In main X is : "<<X;myFunc( );cout<<"\n Back in main, X is :"<<X;}void myFunc( ){int X=8;cout<<"\n In myFunc, local X: "<<X;{cout<<"\n In block in myFunc , X is:"<<X;int X=9;cout<<"\n Very local, X: ”<<X;}cout<<"\n Out of block, in myFunc, X is: "<<X;}(14) #include <stdio.h>f(int a[]){int i=0;while (a[i]<=10){printf("%d ",a[i]);i++;}}main(){int a[]={1,5,10,9,11,7};f(a+1);}(15) #include <stdio.h>swap(int *p1,int *p2){int p;p=*p1;*p1=*p2;*p2=p;}main(){int a=5,b=7,*ptr1,*ptr2;prt1=&a; ptr2=&b;swap(ptr1,ptr2)printf("*ptr1=%d,*ptr2=%d\n",*ptr1,*ptr2);printf("*ptr1=%d,*ptr2=%d\n",a,b);}(16) #include <stdio.h>void main(void){int x,y=-2,z=0;if ((z=y)<0) x=4;else if (y==0) x=5;else x=6;printf("\t%d\t%d\n",x,z);if (z=(y==0))x=5;x=4;printf("\t%d\t%d\n",x,z);if (x=z=y) x=4;printf("\t%d\t%d\n",x,z);}(17) #include <stdio.h>int fac(int n){static int f=1;f=f*n;return(f);}main(){int i;for (i=1;i<=5;i++)printf("%d!=%d\n",i,fac(i));return;}(18) #include <stdio.h>int fac(int n){int f=1;f=f*n;return(f);}main(){int i;for (i=1;i<=5;i++)printf("%d!=%d\n",i,fac(i));return;}三、单项选择题1.一个C程序的执行是从_______。
(A)本程序的main函数开始,到main函数结束(B)本程序的第一个函数开始,到本程序文件的最后一个函数结束(C)本程序的main函数开始,到本程序文件的最后一个函数结束(D)本程序文件的第一个函数开始,到本程序main函数结束2.一个C语言程序是由__________。
(A)一个主程序和若干个子程序组成(B)函数组成(C)若干个过程组成(D)若干个子程序组成3.下面选项中,均是不合法的用户标示法的选项是________。
(A)A P_0 do(B)float la0 _A(C)b-a goto int(D)_123 temp INT4.以下叙述正确的是_________。
(A)在C程序中,每行中只能写一条语句(B)若a是实型变量,C程序中允许赋值a=10,因此实型变量中允许存放整数(C)在C程序中,如论是整数还是实数,都能被准确无误地表示(D)在C程序中,%是只能用于整数运算的运算符5.以下C程序的正确的运行结果是___________。
(注:表示空格)main(){long y=-43456;printf("y=%-8ld\n",y);printf("y=%-08ld\n",y);printf("y=%08ld\n",y);printf("y=%+8ld\n",y);}(A)y=-43456 (B)y=-43456y=-43456 y=-43456y=-0043456 y=-0043456y=-43456 y=+-43456(C)y=-43456 (D)y=-43456y=-43456 y=-0043456y=-0043456 y=00043456y=-43456 y=+434566.设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)7.以下运算符中优先级最低的是_______。