C语言习题顺序选择循环

合集下载

C语言循环习题

C语言循环习题

循环习题集锦一.选择题1.for(i=0;i<10;i++);结束后,i的值是;A 9B 10C 11D 122.下面程序的循环次数是:#include<>void main(){int k=0;while(k<10){if(k<1) continue;if(k==5) break;k++;}printf(“k=%d\n”,k);}A. 5 B 6 C 4 D 死循环,不能确定循环次数3.下面程序的输出结果是()#include<>void main(){int s,k;for(s=1,k=2;k<5;k++)s=s+k;printf(“%d\n”,s);}A 1B 9C 10D 154.要使下面程序输出10个整数,则在下画线处填入正确的数是:#include<>void main(){int i;for(i=0;i<= ;)printf(“i=%d\n”,i=i+2);} (显示的是:2,4,6,8,10,12, (20)A 9B 10C 18D 205.运行下面程序:#include<>void main(){int i=10,j=0;do{j=j+i; /*第一:10,第二:19第三:27第四:34第五:40*/i--;}while(i>5);printf(“%d\n”,j);}输出结果是:A 45B 40C 34D 556.运行下面程序#include <>main(){int k=0,a=1;while(k<10){for( ; ;){ if((k%10)==0)/*当循环开始的时候时,k=0,此时和10取3余的结果就等于0,就跳出了for循环开始下面的循环*/ break;elsek--;}k=k+11;a=a+k;printf(“k=%d \n a=%d\n”,k,a);}则输出的结果是()A 21 32B 21 33C 11 12D 10 117.以下叙述正确的是:A. do---while语句构成的循环不能用其他语句构成的循环来代替。

C语言程序设计-第1-7章选择、填空习题及答案

C语言程序设计-第1-7章选择、填空习题及答案

习题一一、选择题1.C程序的基本单位是(A)。

A.函数B.文件C.语句D.字符2.C程序中的变量(B)。

A.不用说明B.先说明后引用C.先引用后说明D.引用和说明顺序无关3.变量的说明在(B)。

A.执行语句之后B.执行语句之前C.执行语句当中D.位置无关4.C语言是一种(C)。

A.机器语言B.符号语言C.高级语言D.面向对象的语言二、填空题1.一个C程序总是从主函数开始执行。

2.结构化程序由顺序、选择、循环三种基本结构构成。

3.一个C程序只有一个名为main的主函数。

4.C程序中的每个语句以分号结束。

5.C程序中,函数由函数首部和函数体组成。

6.每个基本结构有一个入口和一个出口,没有死循环和死语句。

7.算法是计算机解决问题所依据的步骤。

习题二一、选择题1.下列数据中属于字符串常量的是( B)。

A.ABC B."ABC" C.'abc' D.'A'2.在计算机内存中,'\n'占用的字节数是( C)。

A.4 B.3 C.1 D.23.字符串"ABC"在内存中占用的字节数是( D)。

A.6 B.8 C.3 D.44.在C语言中,合法的长整型常数是( B)。

A.568701400 B.0L C.0.03546287 D.2.654e115.char型常量在内存中存放的是( A)。

A.ASCII代码值B.BCD代码值C.十进制代码值D.内码值6.下列各项中正确的标识符是( D)。

A.?bb B.a=8 C. b.βD.b_47.下列不正确的转义字符是( D)。

A.\\ B.\ 0 C.\" D.0x48.设整型变量a、b的值均为5,则表达式(m=n=a++)/(n=b-2)的值为( B)。

A.0 B.1 C.2 D.39.设a的值为5,执行下列语句后,b的值不为2的是( C)。

A.b=a/2 B.b=6-(--a) C.b=a%2 D.b=(float)a/2 10.执行语句x=(a=3,b=a--)后,x、a、b的值依次是( C)。

C语言循环习题答案

C语言循环习题答案

循环习题集锦一.选择题1.for(i=0;i<10;i++);结束后,i的值是;(10)A 9B 10C 11D 122.下面程序的循环次数是:(D)int k=0;while(k<10){if(k<1) continue;if(k==5) break;k++;}A. 5 B 6 C 4 D 死循环,不能确定循环次数3.下面程序的输出结果是(10)main(){int s,k;for(s=1,k=2;k<5;k++)s+=k;printf(“%d\n”,s);}A 1B 9C 10D 154.要使下面程序输出10个整数,则在下画线处填入正确的数是:(c)for(i=0;i<= ;)printf(“%d\n”,i+=2);A 9B 10C 18D 205.运行下面程序:(B)main(){ int i=10,j=0;do{ j=j+i;i--;}while(i>5);printf(“%d\n”,j);}输出结果是:A 45B 40C 34D 55 6.运行下面程序#include “stdio.h”main(){ int k=0,a=1;while(k<10){for( ; ;){ if((k%10)==0)break;elsek--;}k+=11;a+=k;}printf(“%d %d\n”,k,a);}则输出的结果是(C)A 21 32B 21 33C 11 12D 10 117.以下叙述正确的是:(D)A.do---while语句构成的循环不能用其他语句构成的循环来代替。

B.do---while语句构成的循环只能用break语句退出。

C.用do---while语句构成的循环,在while 后的表达式为非零时结束循环。

D.用do---while语句构成的循环,在while后的表达式为零时结束循环。

8.有如下程序:main(){ int x=3;do{printf(“%d”,x--);}while(!x);}该程序的执行结果是:(C)A 3 2 1B 2 1 0C 3D 29.若k为整型变量,则下面while循环执行的次数为:(A)k=10;while(k==0) k=k-1;A 0B 1C 10 D无限次10.下面有关for循环的正确描述是(D)A.for循环只能用于循环次数已经确定的情况B.for循环是先执行循环体语句,后判断表达式C.在for循环中,不能用break语句跳出循环体。

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

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

第一章C语言基础知识1.1 选择题1. 以下不是C语言的特点的是()。

A、语言简洁紧凑B、能够编制出功能复杂的程序C、C语言可以直接对硬件操作D、C语言移植性好2.下列字符序列中,不可用作C语言标识符的是()。

A.abc123 B.no.1 C._123_ D._ok3.正确的C语言标识符是()。

A._buy_2 B.2_buy C.?_buy D.buy?4. 请选出可用作C语言用户标识符的一组标识符()。

A.void B.a3_b3C.For D.2a define _123 -abcDOWORD IF Casesizeof5.下列符号中,不属于转义字符的是()。

A.\\ B.\0xAA C.\tD.\06.不属于C语言关键字的是()。

A.int B.break C.while D.character7.是C语言提供的合法关键字的是()。

A.Float B.signedC.integer D.Char8.以下不能定义为用户标示符的是()。

A.scanf B.Void C._3com_ D.int9.一个C程序是由()。

A.一个主程序和若干子程序组成B.一个或多个函数组成C.若干过程组成D.若干子程序组成10. C语言程序的基本单位是()。

A.程序行B.语句C.函数D.字符11.下列说法中,错误的是()。

A.每个语句必须独占一行,语句的最后可以是一个分号,也可以是一个回车换行符号B.每个函数都有一个函数头和一个函数体,主函数也不例外C.主函数只能调用用户函数或系统函数,用户函数可以相互调用D.程序是由若干个函数组成的,但是必须有、而且只能有一个主函数12.以下说法中正确的是()。

A.C语言程序总是从第一个定义的函数开始执行B.在C语言程序中,要调用的函数必须在main( )函数中定义C.C语言程序总是从main( )函数开始执行D.C语言程序中的main( )函数必须放在程序的开始部分13. C编译程序是()。

C语言练习题(带详解答案)

C语言练习题(带详解答案)

C语言练习题(带详解答案)一单项选择题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.-a1B.a[i]C.a2_iD.intt5~8题为相同类型题考点:标识符的命名规则(1)只能由字母、数字、下划线构成(2)数字不能作为标识符的开头(3)关键字不能作为标识符选项A中的-,选项B中[与]不满足(1);选项D中的int为关键字,不满足(3)6.下列C语言用户标识符中合法的是(B)。

A)3a某B)某C)caeD)-e2E)union选项A中的标识符以数字开头不满足(2);选项C,E均为为关键字,不满足(3);选项D中的-不满足(1);7.下列四组选项中,正确的C语言标识符是(C)。

A)%某B)a+bC)a123D)123选项A中的%,选项B中+不满足(1);选项D中的标识符以数字开头不满足(2)8、下列四组字符串中都可以用作C语言程序中的标识符的是(A)。

A、print_3ddb8aBcB、I\\amone_halftart$it3paiC、tr_1CpppowwhileD、P某qMy->bookline#Hi.age选项B中的\\,$,选项D中>,#,.,-不满足(1);选项C中的while为关键字,不满足(3)9.C语言中的简单数据类型包括(D)。

全国计算机等级考试二级教程--C语言程序设计课后习题答案

全国计算机等级考试二级教程--C语言程序设计课后习题答案

《全国计算机等级考试二级教程--C语言程序设计》课后习题答案第一章1.1 EXE1.2 C OBJ EXE1.3 顺序选择循环第二章一. 选择题2.1 B 2.2 D 2.3 B 2.4 A 2.5 C 2.6 A 2.7 B2.8 B 2.9 D 2.10 C 2.11 B 2.12 B 2.13 A二. 填空题2.14 11 122.15 4.2 4.22.16 { } 定义执行语句2.17 关键字用户标识符2.18 int float double2.19 float a1=1; float a2=1;2.20 存储单元2.213.52.22 (a*b)/c a*b/c a/c*b2.23 把常量10赋给变量s2.24 位1或0三. 上机改错题2.28#include "stdio.h"; 删除行尾的";"main(); / * main function * / 删除")"后的";",注释中的*要紧靠“/”,即应为“/*”和“*/”函数开始处遗失了一个“{”float r,s ; /*/*r is radius*/,/* s is area of circuilar*/*/ 注释符号不可嵌套使用r = 5.0 ;s = 3.14159 * r * r ;printf("%f\n",s) 行尾遗失了“;”函数结束处遗失了一个“}”2.29#include "stdio.h"main /* main function */ main后遗失了“()”{float a,b,c,v; /*a,b,c are sides, v is volume of cube */a=2.0; b=3.0; c=4.0 行尾遗失了“;”v=a*b*c;printf("%f\n", v) 行尾遗失了“;”}第三章一.选择题3.1 C 3.2 C 3.3 D 3.4 C 3.5 D 3.6 B 3.7 C 3.8 D 3.9 A 3.10 B3.11 C 3.12 D 3.13 D 3.14 A 3.15 C 3.16 C 3.17 C 3.18 无答案3.19 C 3.20 B二. 填空题3.21 (1)-2002500(2)i=-200,j=2500(3)i=-200j=25003.22 12 0 03.23 一条语句;3.24 ;3.25 100,25.81,1.89234 100 25.81 1.89234 100 25.81 1.89234 3.26 x=127,x= 127,x= 177,x= 7f,x= 1273.27 x=127,x=127 ,x=$127 ,x=$000127,x=%06d3.28 a=513.789215,a= 513.79,a= 513.78921500,a= 513.78921500三. 编程题和改错题3.29 修改后的程序如下:main(){double a,b,c,s,v;printf("input a,b,c:");scanf("%lf%lf%lf",&a,&b,&c);s =a*b;v=a*b*c;printf("a=%f,b=%f,c=%f\n", a,b,c);printf("s=%f,v=%f\n",s,v);}3.30#includemain(){int a=560,b=60;printf("560 minute is %d hour and %d minute.\n",a/b,a%b);}3.31#includemain(){int a,b;a=1500;b=350;printf("a div b is : %d\n",a/b);printf("a mod b is : %d\n",a%b);}3.32#includemain(){double a,b,c,ave;printf ("input 3 double number : \n");scanf ("%lf%lf%lf",&a,&b,&c);printf ("%.1f\n",(a+b+c)/3);}3.33#includevoid main(){int a,b,c,t;printf("请依次输入整数a,b,c:");scanf("%d%d%d",&a,&b,&c);printf("\n你输入的值是: a=%d,b=%d,c=%d\n",a,b,c);t=b;b=a;a=c;c=t;printf("交换之后的值是:a=%d,b=%d,c=%d\n",a,b,c);}第四章一. 选择题4.1 A 4.2 A 4.3 A 4.4 D 4.5 C 4.6 A 4.7 B 4.8 C 4.9 D 4.10 C二. 填空题4.11 非0 04.12 < > >= <=同级== !=同级4.13 ! && ||4.15 !4.16 a == b || a < c x > 4 || x < -44.17 14.18 x <= 0 1 > 04.19 3 2 24.20 *#三. 编程题4.21 略4.22#include/* 检查日期的合法性*/int checkdate(int year, int month, int day){if(year < 1900 || year > 2005){printf("输入的年份无效!\n");return 0;}else if(month < 0 && month > 12){printf("输入的月份无效!\n");return 0;}else if(day <= 0 && day > 31){printf("输入的日期无效!\n");return 0;}else{switch(month){case 4:case 6:case 9:case 11:if(day > 30){printf("输入的日期无效!\n");return 0;}break;case 2:if((year%4 == 0 && year%100 != 0) || year%400 == 0){if(day > 29){printf("输入的日期无效!\n");return 0;}}else{if(day > 28){printf("输入的出生日期无效!\n");return 0;}}break;}/* end of switch(m0)*/}return 1;}void main(){int y0, m0, d0; /* 生日*/int y1, m1, d1; /* 当前日期*/int years, months, days; /* 实足年龄*/printf("请输入学生的生日:"); scanf("%d%d%d", &y0,&m0,&d0);if(checkdate(y0, m0, d0)){printf("请输入当前日期:");scanf("%d%d%d", &y1,&m1,&d1);/*当前日期合法性检查*/if(!checkdate(y1, m1, d1)){return;}else if(y0 > y1){printf("出生年份比当前年份晚!\n"); return;}else if(y0 == y1){if(m0 > m1){printf("出生年月比当前年月晚!\n"); return;}else if(m0 == m1){if(d0 > d1){printf("出生年月日比当前年月日晚!\n"); return;}}}}/* 计算实足年龄*/years = y1 - y0;months = m1 - m0;days = d1 - d0;/* 修正实足年龄天数*/if(days < 0){months--;switch(m1){case 1:case 5:case 7:case 10:case 12:days += 30;break;case 2:case 4:case 6:case 8:case 9:case 11:days += 31;break;case 3:if((y1%4 == 0 && y1%100 != 0) || y1%400 == 0){days += 29;}else{days += 28;}break;}/* end of switch(m1) */}/* end of if(days < 0) *//* 修正实足年龄月数*/if(months < 0){months += 12;years--;}/* end of if(months < 0) */printf("出生日期: %d年%d月%d日\n", y0, m0, d0);printf("当前日期: %d年%d月%d日\n", y1, m1, d1); printf("实足年龄: %d年%d月%d日\n", years, months, days);return;}4.23#includevoid main()int a;printf ("请输入一个整数:");scanf ("%d",&a);if (a%2==0){printf ("%d 是偶数\n", a);}else{printf ("%d 是奇数\n", a);}}4.24#includevoid main(){int a,b,c,temp,max;printf ("请输入三个整数:");scanf ("%d %d %d",&a,&b,&c);temp=(a>b)? a:b;max=(temp>c)? temp:c;printf ("\n");printf ("你输入的数中最大的是%d.\n",max); }4.25(1)不嵌套的if语句#includevoid main(){int x,y;printf("input x :");scanf("%d",&x);if ( x>-5 && x<0 ){printf("y is %d\n",y=x);}if ( x==0 ){printf("y is %d\n",y=x-1);if ( x>0 && x<10 ){printf("y is %d\n",y=x+1); }if ( x>=10 || x<=-5){printf("error\n");}}(2)嵌套的if语句#includevoid main(){int x,y;printf("input x :");scanf("%d",&x);printf("\n");if(x < 0){if(x > -5){printf("y is %d.\n",y=x); }else{printf("error!\n");}}if(0 == x){printf("y is %d.\n",y=x-1); }if(x > 0){if(x < 10){printf("y is %d.\n",y=x+1); }else{printf("error!\n");}}(3)if_else语句#includevoid main(){int x,y;printf("input x :");scanf("%d",&x);if( x>-5 && x<0 ){printf("y is %d.\n",y=x); }else if( x==0 ){printf("y is %d.\n",y=x-1); }else if( x>0 && x<10 ) {printf("y is %d.\n",y=x+1); }else{printf("error!\n");}}(4)switch语句#includevoid main(){int x,y;printf("input x : ");scanf("%d",&x);switch (x){case -4:case -3:case -2:case -1:printf("y is %d.\n",y=x); break;case 0:printf("y is %d.\n",y=x-1);break;case 1:case 2:case 3:case 4:case 5:case 6:case 7:case 8:case 9:printf("y is %d.\n",y=x+1);break;default:printf("error!\n");}}第五章一. 选择题5.1 D 5.2 C 5.3 B 5.4 C 5.5 C 5.6 B 5.7 D 5.8 A 5.9 D 5.10 D二. 填空题5.11 5 4 65.12 死循环5.13 -15.14 115.15 d=1.0 k++ k<=n5.16 x>=0 x三. 编程题5.17#includevoid main(){int i;int sig = 1;int sum = 0;for(i=1; i<=101; i++,i++){sum += sig*i;sig *= -1;}printf("sum=%d\n", sum);}5.18(1)#includevoid main(){int i;double m=1.0;double e = 1.0;for(i=1; i<50; i++){m *= i;e += 1/m;}printf("e=%f\n",e);}(2)#includevoid main(){int i=1;double m=1.0;double e = 1.0;while(1/m >= 0.0004){m *= i;e += 1/m;i++;}printf("e=%f\n",e);}5.19#includevoid main(){int year;int col = 0;for(year=1600; year<=2000; year++){if((year%4 == 0 && year%100 != 0) || year%400 == 0)printf("%d\t", year);col++;if(col%5 == 0){printf("\n");}}}printf("\n");}5.20#include#define N 7void main(){int i;int j;int m;int k = N/2;for(i=0; i {m = i-k;if(m < 0){m *= -1;}for(j=0; j {printf(" ");}for(j=0; j<2*(k-m)+1; j++){printf("*");}printf("\n");}}第六章一. 选择题6.1 B 6.2 D 6.3 A 6.4 A 6.5 B 6.6 D 6.7 D 6.8 B 6.9 A 6.10 A 6.11 C二. 填空题6.12 -16.13 16.14 ctype.h6.15 16.16 10A 20B 30C 40D6.177.29 101.298AB6.18 A7.29B101.2986.19 A B C (每个字符后有三个空格)三. 编程题6.20#include#define N 80void main(){char str[N];int iLoop = 0;gets(str);while(str[iLoop]){printf("%c-%d\t", str[iLoop],str[iLoop]); iLoop++;if(iLoop%3 == 0){printf("\n");}}printf("\n");}6.21#include#define N 80void main(){char str[N];int num = 0;int iLoop = 0;gets(str);while(str[iLoop]){if(str[iLoop] >= '0' && str[iLoop] <= '9') {num = 10*num + (str[iLoop] - '0');iLoop++;}printf("%d\n",num);}6.22#include#include#define N 80void main(){char str[N];int num = -1;do{gets(str);num++;}while(strcmp(str, "EOF"));printf("您输入了%d行字符!\n",num);}6.23#include#define N 80void main(){char str[N];int iLoop = 0;int num = 0;gets(str);while(str[iLoop] && iLoop < N){if(str[iLoop] >= 'a' && str[iLoop] <= 'z'){num++;}iLoop++;}printf("您输入了字符中有%d个小写字母!\n",num); }#includevoid main(){int line;int iLoop1;int iLoop2;printf("请输入图案的行数(不大于26):");scanf("%d", &line);for(iLoop1 = 0; iLoop1 < line; iLoop1++){for(iLoop2 = 0; iLoop2 < line - iLoop1; iLoop2++) {printf(" ");}for(iLoop2 = 0; iLoop2 < 2*iLoop1+1; iLoop2++) {printf("%c",iLoop1 + 'A');}printf("\n");}}第七章一. 选择题7.1 C 7.2 C 7.3 B 7.4 C 7.5 A 7.6 D 7.7 A二. 填空题7.8 127.9 9.0000007.10 47.11 n=1 s7.12 <=y z*x7.13 1 s*i 0 f(k)三. 程序调试和编程题7.14fun(int n){ int k,yes;for(k=2; k<=n/2; k++){if(n%k == 0) { yes = 0; break;}}return yes;}7.15int mymod(int a, int b){return a%b;}7.16double fun(int n){double sum = 0;int iLoop;int sig = -1;for(iLoop=1; iLoop<=n; iLoop++) {sig *= -1;sum += sig*1.0/iLoop;}return sum;}7.17double fun(int n){double t = 1.0;int iLoop;long tmp;for(iLoop=2; iLoop<=n; iLoop++) {tmp = iLoop*iLoop;t -= 1.0/tmp;}return t;}7.18#include#includedouble fun(double x){return x*x + 5*x + 4;}{int x = 2;printf("y1=%f\n", fun(x));printf("y2=%f\n", fun(x+15));printf("y3=%f\n", fun(sin(x)));}第八章一. 选择题8.1 A 8.2 B 8.3 B 8.4 C 8.5 B 8.6 B 8.7 C 8.8 D 8.9 B 8.10 C 8.11 C 8.12 C二. 填空题8.13 1108.14 7 18.15 (1)char *p=&ch; (2) p=&ch; (3)scanf("%c",p); (4)*p='A'; (5)printf("%c",*p);8.16 (1)s=p+3; (2)s=s-2 (3)50 (4)*(s+1) (5)2 (6)10 20 30 40 50三. 编程题8.17void fun(double x, double y, double *sum, double *div){*sum = x + y;*div = x - y;return;}8.18void fun(double x, double y, double z, double *max, double *min){*max = x;*min = x;if(*max < y){*max = y;}if(*max < z){*max = z;}if(*min > y){*min = y;}if(*min > z){}return;}第九章一. 选择题9.1 D 9.2 A 9.3 A 9.4 C 9.5 C 9.6 A 9.7 B 9.8 D 9.9 C 9.10 C 9.11 C 9.12 D 9.13 D 9.14 A 9.15 A 9.16 A 9.17 C 9.18 C二. 填空题9.19 9 09.20 69.21 129.22 39.23 27219.24 -850,2,09.25 k=p k9.26 (c=getchar()) c-'A'三. 编程题9.27#include#define N 81int main(){int counter[10] = {0};int iLoop = 0;char str[N];gets(str);while(str[iLoop]){if(str[iLoop] >= '0' && str[iLoop] <= '9'){counter[str[iLoop] - '0']++;}iLoop++;}for(iLoop=0; iLoop < 10; iLoop++){printf("%d - %d\n", iLoop, counter[iLoop]);}return 0;}void fun(int array[], int arraysize, int start){int iLoop;if(start < arraysize-1){if(start <=0){start = 1;}for(iLoop = start; iLoop < arraysize; iLoop++){array[iLoop-1] = array[iLoop];}}for(iLoop = 0; iLoop < arraysize; iLoop++){printf("No.%d = %d\n", iLoop, array[iLoop]);}}9.29int fun(int arry1[], int arry2[], int arrysize){int iLoop;int counter = 0;for(iLoop = 0; iLoop < arrysize; iLoop++){if(arry1[iLoop] % 2){arry2[counter++] = arry1[iLoop];}}return counter;}9.30void fun(char array[], int arraysize){int iLoop1;int iLoop2;char temp;/* 冒泡排序*/for(iLoop1 = 0; iLoop1 < arraysize - 1; iLoop1++){for(iLoop2 = 0; iLoop2 < arraysize - 1 - iLoop1; iLoop2++)if(array[iLoop2] < array[iLoop2 + 1]){temp = array[iLoop2];array[iLoop2] = array[iLoop2 + 1];array[iLoop2 + 1] = temp;}}}}9.31#includevoid fun(int array[], int arraysize, int inertNumber) {int iLoop;int iLoop2;if(array[0] < array[arraysize-1]){for(iLoop = 0; iLoop< arraysize; iLoop++){if(array[iLoop] > inertNumber){for(iLoop2 = arraysize - 1; iLoop2 >= iLoop; iLoop2--) {array[iLoop2 + 1] = array[iLoop2];}array[iLoop] = inertNumber;break;}}if(iLoop >= arraysize){array[arraysize] = inertNumber;}}else{for(iLoop = 0; iLoop< arraysize; iLoop++){if(array[iLoop] < inertNumber){for(iLoop2 = arraysize - 1; iLoop2 >= iLoop; iLoop2--) {array[iLoop2 + 1] = array[iLoop2]; }array[iLoop] = inertNumber; break;}}if(iLoop >= arraysize){array[arraysize] = inertNumber;}}}int main(){int iLoop;int a[20] = {7,6,5,3,2,1};for(iLoop = 0; iLoop < 6; iLoop++) {printf("%d ", a[iLoop]);}printf("\n");fun(a, 6, 0);for(iLoop = 0; iLoop < 7; iLoop++) {printf("%d ", a[iLoop]);}printf("\n");fun(a, 7, 4);for(iLoop = 0; iLoop < 8; iLoop++) {printf("%d ", a[iLoop]);}printf("\n");fun(a, 8, 8);for(iLoop = 0; iLoop < 9; iLoop++) {printf("%d ", a[iLoop]);}printf("\n");return 0;}9.32int fun(int number, int array[]){int iLoop = 0;int iLoop2;int binLen;int midNumber;int div;int remain;midNumber = number;do{div = midNumber/2;remain = midNumber%2;midNumber = div;array[iLoop++] = remain;}while(midNumber);binLen = iLoop;for(iLoop2 = 0, iLoop = binLen - 1; iLoop2 < iLoop; iLoop2++, iLoop--) {midNumber = array[iLoop2];array[iLoop2] = array[iLoop];array[iLoop] = midNumber;}return binLen;}9.33#include#include#define N 15void fun(int array[], int arraysize){int x;int iLoop;int iLoop2;for(iLoop = 0; iLoop < arraysize; iLoop++){iLoop2 = 0;x = rand()%20;do{if(x == array[iLoop2] && iLoop > 0){x = rand()%20;iLoop2 = 0;}iLoop2++;}while(iLoop2 < iLoop);array[iLoop] = x;}}int main(){int a[N];int iLoop;fun(a, N);for(iLoop = 0; iLoop < N; iLoop++){printf("%d\n", a[iLoop]);}return 0;}第十章一. 选择题10.1 C 10.2 B 10.3 C 10.4 B 10.5 C 10.6 A 10.7 C 10.8 A 10.9 C 10.10 C二. 填空题10.11 GFEDCB10.12 XYZ10.13 SO10.14 1010.15 Itis10.16 strlen(str)-1 j--10.17 310.18 goodgood!三. 编程题10.19char* mygets(char *str){int iLoop = 0;char ch;while((ch=getchar()) != '\n')str[iLoop++] = ch;}str[iLoop] = '\0';return str;}char * myputs(char *str){int iLoop = 0;while(str[iLoop]){putchar(str[iLoop++]);}putchar('\n');return str;}10.20#include#includeint fun(char *str){int len;int iLoop1;int iLoop2;int result = 1;len = strlen(str);for(iLoop1 = 0, iLoop2 = len - 1; iLoop1 < iLoop2; iLoop1++, iLoop2--) {if(str[iLoop1] != str[iLoop2]){result = 0;break;}}return result;}int main(){char a[20] = "ABCDCBA";char b[20] = "ABCDEBA";printf("%d\n", fun(a));printf("%d\n", fun(b));return 0;}10.21char fun(char *str, int pos){int len;int iLoop;char ch;len = strlen(str);if(pos > len){return NULL;}ch = str[pos];for(iLoop = pos; iLoop < len - 1; iLoop++) {str[iLoop] = str[iLoop + 1];}str[len-1] = '\0';return ch;}第十一章一. 选择题11.1 D 11.2 B 11.3 A 11.4 C二. 填空题11.5 IJKLEFGHABCD11.6 711.7 811.8 *(s+j) i+1 i11.9 1711.10 (*fun)() (*fun)(a+i*h)/h mypoly三. 编程题11.11#include#include#define N 81int main(int argc, char **argv)char sig;int dig;int pos;char str[N] = {'\0'};char outStr[N] = {'\0'};if(argc < 2){sig = '-';dig = 10;}else{sig = argv[1][0];dig = argv[1][1] - '0';}printf("请输入一个字符串:"); gets(str);if(sig == '-'){pos = strlen(str) - dig;if(pos <= 0){pos = 0;}strcpy(outStr, str + pos);}else if(sig == '+'){strcpy(outStr, str);pos = strlen(outStr);if(pos > dig){pos = dig;}outStr[pos] = '\0';}printf("处理后的字串为:"); printf("%s\n", outStr);}11.12#include#includevoid movebin(char *bin){int len;int iLoop;len = strlen(bin);for(iLoop = len; iLoop > 0; iLoop--) {bin[iLoop] = bin[iLoop - 1];}return;}void fun(int n, char *bin){int pos;pos = strlen(bin);if(n == 0){return;}if(n == 1){movebin(bin);bin[0] = '1';return;}movebin(bin);bin[0] = (n%2) + '0';n /= 2;fun(n, bin);return;}int main(){int a = 4;char bin[50] = {""};printf("%s\n", bin);return 0;}11.13#includelong fun(int n){if(n == 1){return n;}else{return fun(n-1) + n;}}int main(){int num;int sum;printf("请输入一个自然数:"); scanf("%d", &num);sum = fun(num);printf("结果是:%d\n", sum);return 0;}11.14#includeint fun(int n){if(n == 0 || n == 1){return 1;}else{return fun(n-1) + fun(n-2);}}int main(){int num;int result;printf("请输入一个自然数:");scanf("%d", &num);result = fun(num);printf("斐波拉契级数为:%d\n", result);return 0;}第十二章一. 选择题12.1 B 12.2 B 12.3 A 12.4 C 12.5 D 12.6 B 12.7 A 12.8 A二. 填空题12.9 2,5,1,2,3,-212.10 2468第十三章一. 选择题13.1 A 13.2 C 13.3 B 13.4 C 13.5 D 13.6 D 13.7 D二. 填空题13.8 ar=9 ar=9 ar=1113.9 int* s *b三. 编程题13.10#define MYALPHA(C) ((C>='A' && C<='Z') || (C>='a' && C<='z')) ? 1 : 0 13.11#define SWAP(t,x,y) {t tmp; tmp=x; x=y; y=tmp;}13.12#include#includeint main(){int *p;int tmp;int iLoop;int iLoop2;p = (int *)malloc(sizeof(int)*3);scanf("%d%d%d", p,p+1,p+2);for(iLoop = 0; iLoop < 2; iLoop++){for(iLoop2 = 0; iLoop2 < 2 - iLoop; iLoop2++){if(*(p + iLoop2) > *(p + iLoop2 + 1)){tmp = *(p + iLoop2);*(p + iLoop2) = *(p + iLoop2 + 1);*(p + iLoop2 + 1) = tmp;}}}printf("%d %d %d\n", *p, *(p+1), *(p+2));free(p);p = NULL;return 0;}第十四章一. 选择题14.1 D 14.2 D 14.3 D 14.4 A 14.5 C 14.6 C 14.7 C 14.8 B二. 填空题14.9 struct link *next14.10 p->next m>p->data14.11 (struct list*) struct list struct list* struct list return h三. 编程题14.12#include#define N 3struct stud{char num[5], name[10];int s[4];double ave;};void readrec(struct stud array[], int size){int iLoop;for(iLoop=0; iLoop {scanf("%s%s%d%d%d%d", array[iLoop].num, array[iLoop].name, &array[iLoop].s[0], &array[iLoop].s[1],&array[iLoop].s[2], &array[iLoop].s[3]);array[iLoop].ave = (array[iLoop].s[0] + array[iLoop].s[1] +array[iLoop].s[2] + array[iLoop].s[3])/4.0;}return;}void writerec(struct stud array[], int size){int iLoop;for(iLoop=0; iLoop{printf("%s\t%s\t%d\t%d\t%d\t%d\t%f\n",array[iLoop].num,array[iLoop].name,array[iLoop].s[0],array[iLoop].s[1],array[iLoop].s[2],array[iLoop].s[3],array[iLoop].ave);}return;}int main(){struct stud stu[N];readrec(stu, N);writerec(stu, N);return 0;}14.13#include#include#define N 100struct node{int data;struct node* next;};int seekMaxValue(struct node *pNode){int max;struct node* pMove;pMove = pNode;max = pMove->data;pMove = pMove->next;while(pMove){if(max < pMove->data){max = pMove->data;}pMove = pMove->next;}return max;}struct node* seekMaxValueAddress(struct node *pNode) {int max;struct node* maxAddress;struct node* pMove;pMove = pNode;max = pMove->data;maxAddress = pMove;pMove = pMove->next;while(pMove){if(max < pMove->data){max = pMove->data;maxAddress = pMove;}pMove = pMove->next;}return maxAddress;}int main(){struct node* head;struct node* pNode;int iLoop;head = (struct node*)malloc(sizeof(struct node)); pNode = head;pNode->next = NULL;for(iLoop=0; iLoop {pNode->next = (struct node*)malloc(sizeof(struct node)); pNode = pNode->next;pNode->next = NULL;pNode->data = iLoop;}printf("%d\n", seekMaxValue(head->next));printf("%d\n", seekMaxValueAddress(head->next));return 0;}第十五章一.选择题15.1 D 15.2 A 15.3 B 15.4 A二. 填空题15.5 1111000015.6 a^a15.7 a|0xffff15.8 x|0xff0015.9 a=(012500>>2)15.10 ch|0x20第十六章一. 选择题16.1 B 16.2 C二. 填空题16.3 3 !feof(f1) f2 fclose(f1) fclose(f2)16.4 fopen(fname,"w") ch16.5 "r" !feof(fp) fgetc(fp)16.6 CCCCBBBBAAAA三. 编程题#include#define N 10#define LEN 81int main(){char *str[N] = {"AAAAAAAAA", "BBBBBBBBB", "CCCCCCCCC", "DDDDDDDDD", "EEEEEEEEE", "FFFFFFFFF", "GGGGGGGGG", "HHHHHHHHH","IIIIIIIII","JJJJJJJJJ"};char str2[N][LEN];FILE *fp;int iLoop;fp = fopen("str.txt", "w");if(fp == NULL){printf("创建文件失败!\n"); return 1;}else{for(iLoop = 0; iLoop < N; iLoop++) {fputs(str[iLoop], fp);fputs("\n",fp);}}fclose(fp);fp = fopen("str.txt", "r");if(fp == NULL){printf("打开文件失败!\n"); return 1;}elsefor(iLoop = 0; iLoop < N; iLoop++){fgets(str2[iLoop], LEN - 1, fp);}}fclose(fp);for(iLoop = 0; iLoop < N; iLoop++){printf("%s", str2[iLoop]);}return 0;}16.8#include#define N 10int main(){float num;int iLoop;FILE *fp;fp = fopen("num.bin", "wb+");if(fp == NULL){printf("创建文件失败!\n");return 1;}/* 从键盘读入10个数并写文件*/printf("请输入%d个数:", N); for(iLoop = 0; iLoop < N; iLoop++){scanf("%f", &num);fwrite(&num, sizeof(num), 1, fp);}/* 文件指针回到开始处*/rewind(fp);/* 从文件读出10个数并显示*/for(iLoop = 0; iLoop < N; iLoop++){fread(&num, sizeof(num), 1, fp);printf("%f\n", num);/* 移文件指针到第四个数开始处*/fseek(fp, 3L*sizeof(num), SEEK_SET);/* 读入一个新数据*/printf("请输入一个新数据:"); scanf("%f", &num);fwrite(&num, sizeof(num), 1, fp);/* 文件指针回到开始处*/rewind(fp);/* 从文件读出10个数并显示*/for(iLoop = 0; iLoop < N; iLoop++){fread(&num, sizeof(num), 1, fp);printf("%f\n", num);} /* 关闭文件*/fclose(fp);return 0;}。

C语言-基本选择题及答案

C语言-基本选择题及答案

计算机程序设计基础(C语言)单项选择练习题说明:带*号的对非信息学院的同学不作要求.一、基本概念1. C语言程序是由 C 构成的。

A)一些可执行语言 B)main函数 C)函数 D)包含文件中的第一个函数2.(A)是构成C语言程序的基本单位。

A、函数B、过程C、子程序D、子例程3.C语言程序从 C开始执行。

A)程序中第一条可执行语句 B) 程序中第一个函数C) 程序中的main函数 D) 包含文件中的第一个函数4.C语言程序从main()函数开始执行,所以这个函数要写在_D___.A) 程序文件的开始 B) 程序文件的最后C)它所调用的函数的前面 D) 程序文件的任何位置5、以下说法中正确的是(C).A、C语言程序总是从第一个定义的函数开始执行B、在C语言程序中,要调用的函数必须在main()函数中定义C、C语言程序总是从main( )函数开始执行D、C语言程序中的main()函数必须放在程序的开始部分6。

下列方法中错误的是(D).A.主函数可以分为两个部分:主函数说明部分和主函数体。

B。

主函数可以调用任何非主函数的其它函数。

C.任何非主函数可以调用其它任何非主函数。

D.程序可以从任何非主函数开始执行.7. 下列说法错误的是:(B)A.C程序运行步骤是编辑、编译、连接、执行。

B.C语言的变量名必须用小写,常量用大写。

C.C语言的三种基本结构是顺序、选择、循环。

D。

C程序一定由函数构成的。

8。

下列关于C语言的说法错误的是( B ) .A) C程序的工作过程是编辑、编译、连接、运行B) C语言不区分大小写.C) C程序的三种基本结构是顺序、选择、循环D) C程序从main函数开始执行9. 系统默认的C语言源程序扩展名为。

C,需经过 C 之后,生成.exe文件,才能运行。A)编辑、编译 B )编辑、连接 C) 编译、连接 D) 编辑、改错*10。

下列说法中正确的是(B)。

A。

由于C源程序是高级语言程序,因此一定要在TC软件中输入.B。

C语言练习题

C语言练习题

一、选择题(每题 1 分,共20 分)1. C 语言程序的三种基本结构是顺序结构、选择结构和结构。

A、循环B、递归C、转移D、嵌套2.下列标识符中,合法的是_______ 。

A) unsigned B) 5ab C) INT# D)_num23.若float x ;x = 10/4 ;x的值是。

A、B、2.0 C、3 D、24.表达式!x 等价于。

A、x==0B、x==1C、x != 0D、x != 15.算术运算符、赋值运算符和关系运算符的运算优先级按从高到低的顺序依次为。

A、算术运算、赋值运算、关系运算B、关系运算、赋值运算、算术运算C、算术运算、关系运算、赋值运算D、关系运算、算术运算、赋值运算6.能将高级语言编写的源程序转换为目标程序的是。

A、链接程序B、解释程序C、编译程序D、编辑程序7.下列语句定义pf为指向float类型变量f的指针,是正确的。

A、float f, *pf = f;B、float f, *pf = &f;C、float *pf = &f, f;D、float f, pf = f;8.一个C程序的执行是从。

A、本程序的main函数开始,到main函数结束B、本程序文件的第一个函数开始,到本程序文件的最后一个函数结束C、本程序的main函数开始,到本程序文件的最后一个函数结束D、本程序文件的第一个函数开始,到本程序main函数结束9.能正确表示“当x的取值在[1,10]或[[200,210]范围内为真,否则为假”的表达式是________。

A、(x>=1)&&(x<=10)&&(x>=200)&&(x<=210)B、(x>=1)||(x<=10)||(x>=200)||(x<=210)C、(x>=1)&&(x<=10)||(x>=200)&&(x<=210)D、(x>=1)||(x<=10)&&(x>=200)||(x<=210)10.对两个数组a和b进行如下初始化char a[]=“ABC DEF”;char b[]={ ‘A’,’B’,’C’,’D’,’E’,’F’};则以下叙述正确的是。

C语言综合练习题

C语言综合练习题

习题一一、选择题1. C程序从( D )开始执行。

(A) 程序中的第一条语句(B) 程序中的第一条可执行语句(C) 程序中的第一个函数(D) 程序中的main函数2. 下列各项中,不是C语言的特点是( )。

(A) 语言简洁、紧凑,使用方便(B) 数据类型丰富,可移植性好(C) 能实现汇编语言的大部分功能(D) 有较强的网络操作功能3. 下列叙述错误的是( B )。

(A) C程序中的每条语句都用一个分号作为结束符(B) C程序中的每条命令都用一个分号作为结束符(C) C程序中的变量必须先定义,后使用(D) C语言以小写字母作为基本书写形式,并且C语言要区分字母的大小写4. 算法中对需要执行的每一步操作,必须给出清楚、严格的规定,这属于算法的( B )。

(A) 正当性 (B) 确定性 (C) 可行性 (D) 确定性习题二一、选择题1. 整型变量的类型说明符是( B )。

(A) short (B) int (C) long (D) float2. 单精度型变量的类型说明符是( C )。

(A) int (B) long (C) float (D) double3. 下列叙述正确的是( D )。

(A) 标识符由字母、数字或下划线组成,必须以字母或下划线开头(B) 标识符由字母、数字或下划线组成,必须以字母或数字开头(C) 标识符由字母、数字或下划线组成,必须以字母或下划线开头,可以含有空格(D) 标识符由字母、数字或下划线组成,必须以字母或下划线开头,并且不含空格4. 下列式子中,是字符型常量的是( A )。

(A) 'a' (B) "a" (C) 'ab' (D) "ab"5. 下列式子中,可以作为C语言标识符的是( C )。

(A) array-1 (B) 234abc (C) array_1 (D) if6. 下列语句正确的是( B )。

《c语言程序设计基础》单元总结与练习题及答案

《c语言程序设计基础》单元总结与练习题及答案

《c语言程序设计基础》单元总结与练习题及答案《C语言程序设计基础》课程单元总结与单元练习答案《C语言程序设计》单元总结与练习题答案《C语言程序设计基础》课程单元总结与单元练习答案单元一程序设计宏观认识单元总结提升本单元中,核心内容有C语言程序框架结构、程序的构成和程序开发过程。

通过本单元的学习,我们应该知道:1(C语言程序最基本的程序框架由两部分构成,分别是:(1) 编译预处理(2) 函数组2(C程序最大的特点就是所有的程序都是用函数来装配的,函数是构成C语言程序的基本单位,函数包括主函数、库函数和自定义函数。

函数的一般结构形式为: 函数返回值类型函数名(形式参数) //函数首部{ 说明语句; //函数体可执行语句;} 3(标识符是用来标识程序中的某个对象名字的字符序列。

C语言把标识符分为三类,即关键字、预定义标识符、用户自定义标识符。

对于用户自定义标识符的命名C语言规定:(1) 所有的用户标识符必须先定义后使用;(2) 用户标识符由字母(A~Z,a~z)、数字(0~9)、下划线“_”组成,并且首字符不能是数字 ;(3) 区分大小写;(4)不能用关键字作为用户自定义标识符,通常不使用预定义标识符作为用户自定义标识符。

4(理论上讲,程序开发过程分为四个步骤,分别为:(1) 编辑源程序 (2) 编译源程序,生成目标程序 (3) 连接目标程序及其相关模块,生成可执行文件 (4) 运行可执行文件 5(简单描述使用VC++6.0开发应用程序的步骤:《C语言程序设计基础》课程单元总结与单元练习答案如图所示:打开或编辑、编译打开或启动完成新建工程连接、运行新建文件VC++6.0图 VC++6.0开发程序的步骤总之,通过本单元的学习,应该掌握C语言程序框架结构和程序开发过程,还要对C语言程序设计的知识脉络有一定的了解。

单元练习一(选择题1(构成C语言程序的基本单位是( )。

A(框架 B(预处理 C(函数 D(语句 2(在程序开发过程中,把文本文件格式源程序转化为二进制格式的目标程序的过程称之为( )。

C语言复习题库(1)

C语言复习题库(1)

一、填空题(每空 1 分,共20 分)1.程序的三种基本结构为(顺序)、(选择)和(循环)。

2.在C 语言中,用(;)表示语句的结束。

3.语句printf("%%d%d",123);将输出:(“%d123 )。

4.逻辑运算的结果值是(0 )或( 1 )。

5.数组 int a[3][4];共定义了(12 )个数组元素。

6.在 C 语言中,正确的标识符是由(数字、字母、下划线)组成的,且由(字母和下划线)开头的。

7.一个算法应具有的特点有:(有穷性)、(确定性)、有零个或多个输入、有一个或多个输出、有效性。

8.在程序执行过程中,其值不发生改变的量称为(常量),其值可变的量称为(变量)。

9.若有定义:int m=5,y=2;则执行表达式y+=y-=m*=y 后的y 值是(-16 )。

10.在三种正规循环中,当条件表达式的值为(0 )时,就结束循环。

11.C 语言中函数的参数分为(形式参数)和(实际参数)。

12.当函数的数据类型省略时,默认的数据类型为(int 型或者整数型)型。

13.按变量地址访问变量的方法叫(直接访问),通过存放变量地址的变量去访问变量的方法叫(间接访问)。

14.若有定义:int [3][4]={{1,2},{0},{4,6,8,10}};则初始化后,a[1][2]得到的初值是(0 ),a[2][1]得到的初值是( 6 )。

15.文件包含的一般形式为(#include <文件名> )。

16.宏定义中宏名一般用大写字母表示,容易做到(一改全改)。

17.结构体是一种(构造)数据类型用途是把(不同类型)的数据组合成一个整体。

18.位运算的运算对象只能是(整型)或(字符型)数据,而不可以是其他类型的数据。

19.(文件)是存储在外部介质上数据的集合,是操作系统数据管理的单位。

20.设有“int x=2,y”说明,则逗号表达式“y=x+5,x+y”的值是(9 )。

C语言习题集2

C语言习题集2

C语言习题集一、单项选择题1、C语言提供的合法关键字是_______。

A、AUTOB、includeC、unsignedD、dafault2、合法的C语言标识符是__________。

A、2aB、sumC、defaultD、a+b3、下面四个选项中,不是C语言整型常量的是。

A、01B、0x11C、081D、-327684、下面四个选项中正确的实型常量是。

A、0x12B、-12345.e-3C、Ie0.5D、e-55、若a为整型变量,则下面语句。

a=-2L;printf(“%d\n”,a);A、赋值不合法B、输出值为-2C、输出为不确定值D、输出值为-26、在C语言中,要求参加运算的数必须是整数的运算符是。

A、/B、!C、%D、= =7、字符串“\\012\012”在内存中占用的字节数是个。

A、4B、5C、6D、78、下列说法中,错误的是。

A、变量的定义可以放在所有函数之外B、变量的定义可以不放在本编译单位中,而放在其他编译单位中C、变量的定义可以放在某个函数的函数头中D、变量的定义可以放在某个复合语句的开头9、下列说法中,正确的是。

A、自动型变量是分配在内存的数据区的B、寄存器型变量是分配在内存的数据区中的C、表态型变量是分配在内存的数据区中的D、外部参照型变量是分配在内存的数据区中的10、在C语言中,一个int型数据在内存中占用2个字节,则int型数据的取值范围是。

A、-128~127B、-32768~32767C、0~65536D、0~214748364711、下面不正确的字符串常量的。

A、’abc’B、”12’12”C、”0”D、” ”12、char型常量在内存中存放的是。

A、ASCII代码值B、BCD代码值C、内码值D、十进制代码值13、以下程序段。

int x=2,y=3;printf( x>y ? ”****=%d”: “###y=%d”,x,y);A、输出控制格式错误B、输出为:****x=2C、输出为:###y=2D、输出为:###y=314、以下程序的输出为。

(完整版)C语言循环习题答案

(完整版)C语言循环习题答案

循环习题集锦一.选择题1.for(i=0;i<10;i++);结束后,i 的值是;(10)A 9B 10C 11D 122.下面程序的循环次数是:(D)int k=0;while(k<10){if(k<1) continue;if(k==5) break;k++;}A. 5 B 6 C 4 D 死循环,不能确定循环次数3.下面程序的输出结果是(10)main(){int s,k;for(s=1,k=2;k<5;k++)s+=k;printf(“%d\n”,s);}A 1B 9C 10D 154.要使下面程序输出10 个整数,则在下画线处填入正确的数是:(c)for(i=0;i<= ;)printf(“%d\n”,i+=2);A 9B 10C 18D 205.运行下面程序:(B)main(){ int i=10,j=0;do{ j=j+i;i--;}while(i>5);printf(“%d\n”,j);}输出结果是:A 45B 40C 34D 556.运行下面程序#include “stdio.h”main(){ int k=0,a=1;while(k<10){for( ; ;){ if((k%10)==0)break;elsek--;}k+=11;a+=k;}printf(“%d %d\n”,k,a);}则输出的结果是(C)A 21 32B 21 33C 11 12D 10 117.以下叙述正确的是:(D)A.do---while 语句构成的循环不能用其他语句构成的循环来代替。

B.do---while 语句构成的循环只能用break 语句退出。

C.用do---while 语句构成的循环,在while 后的表达式为非零时结束循环。

D.用do---while 语句构成的循环,在while 后的表达式为零时结束循环。

8.有如下程序:main(){ int x=3;do{printf(“%d”,x--);}while(!x);}该程序的执行结果是:(C)A 3 2 1B 2 1 0C 3D 29.若k 为整型变量,则下面while 循环执行的次数为:(A)k=10;while(k==0) k=k-1;A 0B 1C 10D 无限次10.下面有关for 循环的正确描述是(D)A.for 循环只能用于循环次数已经确定的情况B.for 循环是先执行循环体语句,后判断表达式C.在for 循环中,不能用break 语句跳出循环体。

C语言习题:顺序、选择、循环

C语言习题:顺序、选择、循环

2.3顺序结构程序设计2.3.1 要点导读1.printf() 与scanf()语句。

printf() 与scanf()语句是最通用的输入输出函数,它们可以在程序设计者的控制下以各种格式分别实现数据的输出和输入操作。

它们位于stdio.h库文件中。

2.字符数据的输入输出。

最简单的字符输入输出函数是getchar()和putchar()。

两者分别从键盘读一个字符或向显示屏写一个字符。

2.3.2 经典例题分析1.下列程序运行后输出的结果是。

#include <stdio.h>void main(){int a=0,b=0;a=10;b=20;printf(“a+b=%d”,a+b);}分析:printf( )是输出函数,它的括号内由两部分组成:1)控制字符串,是用双引号括起来的字符串,它包括两种信息:(1) 格式说明。

由”%”和格式字符组成,如:%d、%f、%c等。

它的作用是将输出的数据转换成指定的格式输出。

(2) 普通字符。

需要原样输出的字符。

2)”输出表列”是需要输出的一些数据,可以是表达式。

题目中a的值是10,b的值是20,在printf(“a+b=%d”,a+b);格式说明输出表列中,”a+b= “是普通字符,需原样输出。

输出表列是一个表达式,它的结果以整型输出。

答案:a+b=30。

2.下列程序运行后输出的结果是。

#include <stdio.h>void main(){int a=732;printf(“%d\n”,a);printf(“%2d\n”,a);printf(“%10d\n”,a);printf(“%-10d\n”,a);}分析:d格式符,用来输出十进制整数。

其中%d,按整型数据的实际长度输出。

%md,m为指定的输出字段的宽度。

如果数据的位数小于m,则左端补以空格,若大于m,则按实际位数输出。

printf(“%d\n”,a);把a的值按原样输出:732。

C语言程序设计习题集第4章 循环结构(答案)

C语言程序设计习题集第4章 循环结构(答案)

第4章循环结构一、选择题1、有以下程序段int k=0;while(k=1)k++;while 循环执行的次数是( A)A) 无限次B) 有语法错,不能执行C) 一次也不执行D) 执行1次2、t为int类型,进入下面的循环之前,t的值为0while( t=1){ …… }则以下叙述中正确的是( B)A) 循环控制表达式的值为0B) 循环控制表达式的值为1C) 循环控制表达式不合法D) 以上说法都不对3、在C程序中,与while(m)中表达式m完全等价的是(B )A) m==0 B) m!=0 C) m==1 D) m!=14、有以下程序,程序运行后的输出结果是(C )。

main(){int i=1,sum=0;while(i<=4){sum=sum+i;i=i+1;}printf(“%d\n”,sum);}A)4 B)5 C)10 D)死循环5、有以下程序,程序运行后的输出结果是(D )。

main(){ int i=1,sum=0;while(i<=4)sum=sum+i;i=i+1;printf(“%d\n”,sum);}A)4 B)5 C)10 D)死循环6、有如下程序main(){int n=9;while(n>6){n--;printf(“%d”,n);}}该程序段的输出结果是(B)A) 987 B) 876 C) 8765 D) 98767、以下程序的输出结果是( B )main(){ int num= 0;while(num<=2){ num++; printf(“%d\n”,num);}}A) 1 B) 1 C)1 D) l2 2 23 348、有以下程序,若运行时输入3.6 2.4<回车>,则输出的结果是( B)。

main(){float x,y,z;scanf(“%f%f”,&x,&y);z=x/y;while(1){if(fabs(z)>1.0){x=y;y=z;z=x/y;}elsebreak;}printf(“%f\n”,y);}A)1.500000 B)1.600000 C)2.000000 D)2.4000009、执行以下程序段时x=-1;do{ x=x*x; }while(! x);则下面描述正确的是(A )A) 循环体将执行一次B) 循环体将执行两次C) 循环体将执行无限次D) 系统将提示有语法错误10、有以下程序段其输出结果是(C )int x=3;do{ printf("%d",x-=2); }while (!(--x));A) 1 B) 3 0 C) 1 -2D) 死循环11、有如下程序main(){int x=23;do{printf(“%d”,x);x--;}while(!x);}该程序的执行结果是(B )A) 321 B) 23 C) 不输出任何内容D) 陷入死循环12、有以下程序段int n=0,p;do{scanf(“%d”,&p);n++;}while(p!=12345 &&n<3);此处do—while循环的结束条件是( D)A) P的值不等于12345并且n的值小于3B) P的值等于12345并且n的值大于等于3C) P的值不等于12345或者n的值小于3D) P的值等于12345或者n的值大于等于313、以下不构成无限循环的语句或语句组是(A)A) n=0;do {++n;}while(n<0);B) n=0;while(1){n++;}C) n=10;while(n);{n--;}D) for(n=0,i=1; ;i++)n+=i;14、若i为整型变量,则以下循环执行的次数是(B)for(i=2;i= =0;) printf(“%d”,i--);A)无限次B)0次C)1次D)2次15、执行语句for(i=1;i++<4;)后,变量i的值是(C)A) 3 B) 4 C) 5 D) 不定16、有以下程序main(){int y=9 ;for( ; y>0 ; y--)if(y%3==0 ) printf("%d" , --y) ;}程序的运行结果是(C)A) 741 B)963 C)852 D)87542117、以下程序执行后sum的值是( C)A)15 B)14 C) 不确定D)0main(){ int i , sum;for(i=1;i<6;i++) sum+=i;printf(“%d\n”,sum);}18、有如下程序{ int i,sum=0;for(i=1;i<=3;sum++) sum+=i;printf(“%d\n”,sum);}该程序的执行结果是(C)A) 6 B) 3 C) 死循环D) 019、执行语句for(i=3;i>0;i--);i--;后,变量i的值是(C )A)0 B)10 C)-1 D)120、执行下面程序片段的结果是(A )。

C语言复习题

C语言复习题

一、选择题1. 在每个C 程序中都必须包含有这样一个函数,该函数的函数名为 A 。

A. mainB. MAINC. nameD. function2. 在以下关于C 语言的注释的叙述中,不正确的是 C 。

A. A .注释可用"/*"、"*/"形式表示,也可用"#KDJF C. 67KDJD. DK3_3. 关于字符串和字符的关系正确的是A. “A ”与’A ’是相同的B. 字符串是常量,字符是变量C. “A ”与’A ’是不同的D. “A ”与“A ”是相同的4. 下面关于语句的说法正确的是A. 下面这两段程序的执行效果是一致的B. 空语句是只有一个分号的语句,它其实什么也不干C. 语句的构成不一定需要分号D. 语句的书写对程序的运行不起作用,因此可以随便写都可以5. 以下各标识符中,合法的用户标识符组为 D 。

if (x>y) {z=x; s=z*z;} else if (x>y)z=x; s=z*z;elseA.PAd,P#d,b-b,abc,_0123,ssipedB.cin,a10,CPP,float,del_word,signedC.void,max,hiy,<fr>,list,*jerD.a,temp,_isw,INT,keep,wind6.字符串“\”EOF= -\61\””的长度是。

A.8 B.9 C.12 D.非法字符串7.数学式xsin在C程序中对应的不正确的表达式为。

A.sqrt(sin(x)>0sin(x):-sin(x)) B.sqrt(fabs(sinx))C.sqrt(sqrt(sinx*sinx)) D.fabs(sqrt(sin(x)))8.下列是C语言的有效标识符A._No1 B.C.12345 D.int9.C语言中,表示一条语句结束的标号是 BA.# B.; C.它们均为真 B. 其中一个为真C. 它们均为假D. 其中一个为假10.若给定条件表达式(m)(a++): (a--),则其中表达式m 。

习题四(顺序结构)

习题四(顺序结构)

习题四一、选择题1.C语言程序的三种基本结构是()。

A.顺序结构、选择结构、循环结构B.递归结构、循环结构、转移结构C.嵌套结构、递归结构、顺序结构D.循环结构、转移结构、顺序结构2.以下能正确定义且赋初值的语句是()。

A.int n1=n2=10;B.char c=32;C.float f=f+1.1;D.double x=12.3E2.5 3.以下能正确定义整型变量a,b和c并为其赋初值5的语句是()。

A. int a=b=c=5;B. int a,b,c=5;C. a=5,b=5,c=5;D. a=b=c=5;4.在下列选项中,不正确的赋值语句是()。

A.++t;B.n1=(n2=(n3=0));C.k=i==j;D.a=b+c=15.有以下程序:main(){ int a=0,b=0;a=10;b=20;printf("a+b=%d\n",a+b);}程序运行后的输出结果是()。

A.a+b=10B.a+b=30C.30D.出错6.有以下程序段:char ch='a';int k=12;printf("%c,%d,",ch,ch,k); printf("k=%d\n",k);已知字符a的ASCII十进制代码为97,则执行上述程序段后输出结果是()。

A.因变量类型与格式描述符的类型不匹配输出无定值B.输出项与格式描述符个数不符,输出为零值或不定值C.a,97,12k=12D.a,97,k=127.执行下面程序段后的输出结果是()。

int a=15;printf("a=%d,a=%o,a=%x\n",a,a,a);A.a=15,a=15,a=15B.a=15,a=017,a=0xfC.a=15,a=17,a=0xfD.a=15,a=17,a=f8.以下程序的输出结果是()。

main(){int a=010,b=10,c=0x10;printf("%d,%d,%d",a,b,c);}A.8,10,16B.8,10,10C.10,10,10D.10,10,169.以下程序的运行结果是()。

(完整版)C语言循环习题答案

(完整版)C语言循环习题答案

(完整版)C语言循环习题答案循环习题集锦一.选择题1.for(i=0;i<10;i++);结束后,i 的值是;(10)A 9B 10C 11D 122.下面程序的循环次数是:(D)int k=0;while(k<10){if(k<1) continue;if(k==5) break;k++;}A. 5 B 6 C 4 D 死循环,不能确定循环次数3.下面程序的输出结果是(10)main(){int s,k;for(s=1,k=2;k<5;k++)s+=k;printf(“%d\n”,s);}A 1B 9C 10D 154.要使下面程序输出10 个整数,则在下画线处填入正确的数是:(c)for(i=0;i<= ;)printf(“%d\n”,i+=2);A 9B 10C 18D 205.运行下面程序:(B)main(){ int i=10,j=0;do{ j=j+i;i--;}while(i>5);printf(“%d\n”,j);}输出结果是:A 45B 40C 34D 556.运行下面程序#include “stdio.h”main(){ int k=0,a=1;while(k<10){for( ; ;){ if((k%10)==0)break;k--;}k+=11;a+=k;}printf(“%d %d\n”,k,a);}则输出的结果是(C)A 21 32B 21 33C 11 12D 10 117.以下叙述正确的是:(D)A.do---while 语句构成的循环不能用其他语句构成的循环来代替。

B.do---while 语句构成的循环只能用break 语句退出。

C.用do---while 语句构成的循环,在while 后的表达式为非零时结束循环。

D.用do---while 语句构成的循环,在while 后的表达式为零时结束循环。

8.有如下程序:main(){ int x=3;do{printf(“%d”,x--);}while(!x);}该程序的执行结果是:(C)A 3 2 1B 2 1 0D 29.若k 为整型变量,则下面while 循环执行的次数为:(A)k=10;while(k==0) k=k-1;A 0B 1C 10D 无限次10.下面有关for 循环的正确描述是(D)A.for 循环只能用于循环次数已经确定的情况B.for 循环是先执行循环体语句,后判断表达式C.在for 循环中,不能用break 语句跳出循环体。

C语言习题(1~4)

C语言习题(1~4)

习题第一章一.选择题1.C语言的主要特点有哪些(B C D E)(多选)A.简洁、紧凑,使用方便、灵活,易于学习和应用。

B.C语言是结构化程序设计语言。

C.C语言允许直接对位、字节和地址进行操作。

D.数据类型丰富。

E.C语言生成的目标代码质量高。

2.算法具有五个特性,以下选项中不属于算法特性的是(B)。

A.有穷性B.简洁性C.可行性D.确定性3.C语言程序由什么组成(C)。

A.子程序B.主程序和子程序C.函数D.过程4.源程序要正确地运行,必须要有什么函数(C)。

A.printf函数B.自定义的函数C.main函数D.不需要函数5.以下说法中正确的是(C)。

A.C语言程序总是从第一个函数开始执行B.在C语言程序中,要调用的函数必须在main()函数中定义C.C语言程序总是从main()函数开始执行D.C语言程序中的main()函数必须放在程序的开始部分6.一个C程序的执行是从(A)。

A.本程序的main函数开始,到main()函数的结束B.本程序文件的第一个函数开始,到本程序文件的最后一个函数的结束C.本程序文件的main开始,到本程序文件的最后一个函数的结束D.本程序文件的第一个函数开始,到本程序文件的main函数的结束7.下叙述不正确的是(D)。

A.一个C源程序可由一个或多个函数组成B.一个C源程序必须包含一个main函数C.C程序的基本组成单位是函数D.在C程序中,注释说明只能位于一条语句的后面8.C语言是一种面向(D)的程序设计语言。

A.对象B.窗口C.用户D.过程9.在使用Visual C++6.0进行编程时,下面哪种错误是它检查不出来的(B)。

A.编译错误B.逻辑错误C.语法错误D.连接错误10.下面哪个产品不能开发C程序(B)。

A.Turbo C2.0B.DOS2.0C.Visual C++6.0D.Microsoft C6.0二.填空题1.C语言的语句以;结尾。

2.C程序的基本组成单元是函数。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

2.3顺序结构程序设计231要点导读1. printf()与scanf()语句。

printf()与scanf()语句是最通用的输入输出函数,它们可以在程序设计者的控制下以各种格式分别实现数据的输出和输入操作。

它们位于stdio.h库文件中。

2•字符数据的输入输出。

最简单的字符输入输出函数是getchar()和putchar()。

两者分别从键盘读一个字符或向显示屏写一个字符。

2.3.2经典例题分析1•下列程序运行后输出的结果是 _____________ 。

#in clude <stdio.h>void mai n(){int a=0,b=0;a=10;b=20;printf( “+b=%d ”,a+b);}分析:printf()是输出函数,它的括号内由两部分组成:1) 控制字符串,是用双引号括起来的字符串,它包括两种信息:(1) 格式说明。

由”%”和格式字符组成,如:%d、%f、%c等。

它的作用是将输出的数据转换成指定的格式输出。

(2) 普通字符。

需要原样输出的字符。

2) ”输出表列”是需要输出的一些数据,可以是表达式。

题目中a的值是10,b的值是20,在printf( a+b=%d”,a+b);I I格式说明输岀表列中,”a+b=是普通字符,需原样输出。

输出表列是一个表达式,它的结果以整型输出。

答案:a+b=30。

2. ___________________________________ 下列程序运行后输出的结果是。

#in clude <stdio.h>void mai n()int a=732;printf( %d\n”,a);printf( %2d\n ”,a);printf( %10d\n ”,a);printf( %-10d\n ”,a);}分析:d格式符,用来输出十进制整数。

其中%d ,按整型数据的实际长度输出。

%md, m为指定的输出字段的宽度。

如果数据的位数小于m,则左端补以空格,若大于m,则按实际位数输出。

printf( %d\n”,a);把a 的值按原样输出:732。

printf( %2d\n”,a);结果占2 列,但732 占3 列大于2列,所以按实际位数输出:732。

printf(%10d\n ”,a);结果占10列,但732占3列小于10列,所以左端补7个空格。

printf( %-10d\n”,a);结果占10列,表示把数值放到左端,732占3列小于10列,所以右端补7个空格。

答案:732732□ □□□□□□732* E表示空格*/732 □□□□□□□3•已知char a=\103则语句printf( “ %3d执行后的输出结果为( □表示空格) _______________ 。

A) □ 67 B)'C)67 □D)103分析:'03是一个转义字符,表示一个八进制数所代表的字符,转换为十进制为67。

printf( %3d”,a);把'03转换为十进制数输出,结果占3列。

但67占2列,小于要求的3 列, 所以左补空格,即口67答案:C。

4•下列程序运行后结果是 ____________。

#in elude <stdio.h>#define a 3345.67void mai n(){ printf( %f\n ”,a);printf( %e\n",a);printf( %4.2f\n ”,a);printf( %3.1f\n ”,a);printf( %10.3f\n ”,a);printf( %-10.3f\n ”,a);}分析:f格式符,用来输出实数,以小数形式输出,小数点后输出6位。

所以printf( %f\n ”,a); 输出结果为3345.670000。

%m.nf是指,要输出的数占m列,同时小数点保留n位(四舍五入),如果输出的数大于m,则原样输出,同时小数点保留n位(四舍五入)。

如果小于m,则左补空格,同时小数点保留n位(四舍五入)。

printf( %4.2f\n ”,a);输出结果为3345.67。

printf( %3.1f\n ”,a);输出结果为3345.7。

e格式符,以规范化指数的形式输出,所以printf( %e\n”,a);3.345670e+03。

答案:3345.6700003.345670e+033345.673345.7□ 口3345.670 /* (口表示空格)*/3345.670 □□5•下列程序运行后结果是 ___________#in elude <stdio.h> void mai n(){char x=0x227f;printf( %d\n ”,x);}A) 22 B) 127 C) 255 D)8831分析:变量x被定义成字符型,字符型占1个字节,而x被赋值为一个4位16进制的值22ff,占16位。

所以227f高8位被舍去,x的值为7fH。

执行printf( %d\n ”,x);即把x以有符号的十进制整数输出。

答案:B。

6.设int b=0;下列语句的输出结果是_____________ 。

printf(A) 1,1分析:%d,%d :++b,b--);B) 1,0 C) 0,0 D) 0,-1printf函数的执行顺序是由右到左,输出顺序是由左向右。

答案:C。

7. 下列程序运行时,若从键盘输入:____________ 123<回车>45678<回车>后结果是。

#in elude <stdio.h>void mai n(){char c1,c2,c3,e4,c5,c6;scanf( %c%c%c%c '',&c1,&c2,&c3,&c4);c5=getchar();c6=getchar();putchar(cl);putchar(c2);printf( %c%c\n ”,c5,c6);}分析:scanf(格式控制,地址表列)的功能是:从键盘读取输入的信息。

其中”格式控制’的含义同printf函数;”地址表列”是由若干个地址组成的表列,可以是变量的地址,或字符串的首地址。

其scanf( %c%c%c%c :&c1,&c2,&c3,&c4)的作用是:按照c1,c2,c3,c4在内存的地址将c1,c2,c3,c4的值存进去。

由于”%c”表示按字符形式输入数据,所以”回车符”作为一个字符,输入有效。

getchar()函数的作用从终端输入一个字符。

putchar()函数的作用是向终端输出一个字符。

所以c1=1、c2=2、c3=3、c4=回车,c5=4、c6=5。

答案:1245。

8. 设有定义int a;float b;执行scanf( “ %2d%f'&a,&b);语句时,若从键盘输入876 543.0<回车>,a 和b 的值分别是 ____________ 。

分析:scanf()可以指定输入数据所占的列数,系统自动按它截取所需数据。

%2d 说明了a 占两列,即为87,剩下的数字应该赋给b ,但是6和5之间有一个空格,为输入终止符,所以543.0被舍弃,即b 的值为6。

答案:87 6。

9. 已知 a,b,c 为 int 类型,执行 scanf( a=%d,b=%d,c=%d ",&a,&b,&c);后,若要使得 a 为 1, b 为2,c 为3,则以下选项中正确的输入形式是 ()。

A) 1,2,3 B) a=1,b=2,c=3 C) 1 2 3 D) a=1 b=2 c=3分析:scanf 中如果在字符控制串中除了格式说明符以外还有其他字符,则在输入数据 时应输入与这些相同的字符。

答案:B 。

10. 设有int x,y;scanf( %d%*d%d ”,&x,&y);从键盘输入数据10 □ 20 □ 3回车 > 后,y 的值分析:%*d 表示跳过。

所以y 的值是30。

答案:30。

2.3.3习题、选择题#in clude<stdio.h> void mai n() {int x= d';printf( %c”,' '+(x- 'a'+1)); } A) GB) HC) E D) J3. _________________________________________________________________________ 设整型变量a,b 的值均为8。

printf( %d,%d”,(a++,++b),b --);的输出值是 __________________________A)8,8B)8,7C)9,94. _____________________________________________ 若有以下程序段,执行后输出的结果是int m=100, n=0100; printf( %d,%o\n ”,m,n); A) 100,100B) 100,01005. ______________________________________ 有以下程序,其输出结果是#in clude <stdio.h>1. 设a 、b 、c 为整型变量,若从键盘给A)scanf( %f%f%f ",&a,&b,&c); C) scanf( %d%d%d ",a,b,c);2.下列a 、b 、c 输入数据,则正确的输入语句是B) scanf( %d%d%d ",&a,&b,&c); D) scanf( %d%d%d ",&a;&b;&c);D)8,9C) 100,4 D) 100,04void mai n() {float x=1; int y; x++; y=x+1;printf( “=%d,y=%f ",x,y); }A) x=2,y=3B) x=2,y=3.0 C) x=2.0,y=36•有以下程序,其输出结果是 _________________ 。

#i nclude <stdio.h> void mai n() { int a; char c=10; float f=100.0; double x; a=f/=c*=(x=6.5);printf( %d,%d,%3.1f,%3.1f ",a,c,f,x); }A) 1,65,1,6.5 B) 1,65,1.5,6.5 C) 1,65,1.0,6.5 二、填空题1. _____________________________ 下列程序输出的结果是 。

相关文档
最新文档