c语言作业答案
C语言作业及答案3
)。
A)char
B) void
C)float
D)int
8、设有说明 int (* prt)[M]; 其中的标识符 prt 是(
)。
A)M 个指向整型变量的指针
B)指向 M 个整型变量的函数指针
C)一个指向具有 M 个整型元素的一维数组的指针
D)具有 M 个指针元素的一维指针数组,每个元素都只能指向整型变量
)。
4、C 程序以函数为单位进行编译(
)。
5、由多个源文件组成一个程序时,主函数只能出现在一个源文件中(
)。
6、从变量的作用域角度来分,可以分为静态变量和动态变量(
)。
7、如果一个字符数组中包含一个以上结束符’\0’,则遇最后一个’\0’时输出才结束(
)。
8、gets( )函数的作用是从终端输入一个字符串到字符数组,并且将’\0’也装入该数组(
9、已知函数说明语句:void *fx( );则它的含义是(
)。
A)函数 fx 的返回值是一个空类型的指针
B)函数 fx 的返回值可以是任意的数据类型
C)函数 fx 无返回值
D)指针 fx 指向一个函数,该函数无返回值
10、对于下述定义,不正确的叙述是(
)。
union data
{ int i;
char c;
C)9,9
D)10,10
4、以下叙述正确的是()。
A)可以把 define 和 if 定义为用户标识符
B)可以把 define 定义为用户标识符,但不能把 if 定义为用户标识符
C)可以把 if 定义为用户标识符,但不能把 define 定义为用户标识符
D)define 和 if 都不能定义为用户标识符
C语言练习作业及参考答案
二、选择题
1、在C语言中(以16位PC机为例),5种基本数据类型的存储空间长度的排列顺序为____A___。
A) char<int<long int<=float<double
B) char=int <long int<=float<double
B)C程序的每行中只能写一条语句
C)C语言本身没有输入输出语句
D)在对一个C程序进行编译的过程中,可发现注释中的拼写错误
7、以下叙述不正确的是___D_____。
A)一个C源程序可由一个或多个函数组成
B)一个C源程序必须包含一个main函数
C)C程序的基本组成单位是函数
D)在C程序中,注释说明只能位于一条语句的后面
longd=32768;
float e=4.56;
b=a;
a=c=d;
printf("%d,%u,%u,%ld\n",a,b,c,d);
a=e;
printf("%d,%f\n",a,e);
ห้องสมุดไป่ตู้return 0;
}
本题假设int型数据占两个字节。
(提示:%u表示以无符号整型的格式输出;%ld表示以长整型的格式输出)
8、C语言规定:在一个源程序中,main函数的位置是___A_____。
A)必须在最开始
B)必须在系统调用的库函数的后面
C)可以任意
D)必须在最后
习题
一、程序题
1、阅读程序写运行结果
(1)#include <stdio.h>
int main()
C语言课后作业答案
}
else ch=ch;
printf("%c\n",ch);
}
3-5-2大写转化成小写或者小写变大写
#include <stdio.h>
void main()
{
char ch;
printf("请输入一个字符:");
scanf("%c",&ch);
ch=ch;
{
if(ch>='A'&&ch<='Z')ch=ch+32;
printf("a=%d,b=%d\n",a,b);
}
}
水仙花数1
#include <stdio.h>
void main()
{
int m,i,j,k,n=0;
for (m=100;m<=999;m++)
{
i=m/100;
j=m/10-i*10;
k=m%10;
if (m==i*i*i+j*j*j+k*k*k) n++,
switch(ch)
{
case '+':printf("%f+%f=%f\n",x,y,x+y);break;
case '-':printf("%f-%f=%f\n",x,y,x-y);break;
case '*':printf("%f*%f=%f\n",x,y,x*y);break;
case '/':printf("%f/%f=%f\n",x,y,x/y);break;
C语言基础知识作业(含解答)
基础知识作业解答(1)一、选择题:1.下面叙述错误的是:a)C程序中,各种括号应成对出现。
b)C程序中,赋值号的左边不可以是表达式。
c)C程序中,变量名的大小是有区别的。
d)C程序中,若未给变量赋初值,则变量的初值自动为0。
答案:d)解答:C程序中,若未给变量赋初值,则变量的初值不一定为0。
按变量被定义的位置来区分,变量可分为局部变量和全局变量;在{ … } 之间定义的变量称为局部变量,编译系统对局部变量是不进行初始化的,即,不赋初值。
未赋初值的局部变量的值为机内随机值。
在{ … } 之外定义的变量称为全局变量,编译系统自动对全局变量进行初始化。
未赋初值的全局部变量的值为0。
2.下面叙述正确的是:a)C程序中的变量定义语句可以写在函数体中任何位置。
b)C程序中不能有空语句。
c)C程序中的变量必须先定义后使用。
d)C程序中所有简单数据类型都可以准确无误的表示。
答案:c)解答:C程序中,变量定义语句的作用是通知编译系统为变量分配存储空间,所以必须先定义后使用。
3.以下合法的用户标识符的是:a)long b)\t c)5a d)user答案:d)解答:C程序中,合法的用户标识符的定义是:以字母或下划线开头的由字母、数字和下划线组成的字符串,不可以使用系统的关键字作为用户的标识符。
常见的关键字有:int, float ,char ,double ,long, short,unsigned,if,switch,case,break, continue ,do ,for ,while ,struct ,union, auto, static, extern, register;标准函数名可以用作用户标识符,但不提倡。
4.C程序中,合法的关键字的是:a)Float b)while c)Int d)Integer答案:b)5.下面选项中,优先级最高的运算符是:a)&& b)/= c) ! d)<=答案:c)6.下面选项中,优先级最低的运算符是:a)!= b) || c)++ d),答案:d)7.C程序中,运算对象必须为整型数据的运算符是a)++ b) % c) / d) *答案:b)8.假设x,y,z为整型变量,且x=2,y=3,z=10,则下列表达式中值为1的是:a)x && y||z b)x>z c) (!x && y)||(y>z) d)x && !z ||!(y && z)答案:a)解答:C程序中,进行逻辑运算时,所有的非0数都处理成逻辑真;0处理成逻辑假。
C语言作业答案
一、思考题1、常量和变量有什么区别?它们分别是如何定义的?常量是指在C程序运行过程中其值不变的量,变量是一个值的存放处,其值在程序运行过程中可以被改变。
常量有两种形式:字面常量与符号常量,C语言可以使用以下两种形式定义符号常量(1)用关键字const定义定义格式为:const 类型名常量名=值;(2)用编译预处理命令#define定义格式为:#define <常量名> <值常量>变量的定义格式为:数据类型变量名1,变量名2,…,变量名n;或数据类型变量名1=初值1,变量名2=初值2,…,变量名n=初值n;2、变量的要素有哪些?请用一个例子说明?名字、类型、值和地址int a = 1;int是类型,a是名字,1是值,地址是编译器给a变量分配的内存空间3、变量在整个程序中能有相同的值吗?为什么?请举例说明。
可以,因为变量的值可以被改变,但不是一定被改变。
如果程序中没有其它不同的赋值,变量将保持不变。
4、为什么程序需要有短整型(short)和长整型(long)?整型的值集理论上是所有整数,但由于受到计算机存储单元的限制,C语言的整型只能表示所有整数的一个有限子集,因此,整数有它的表示范围限制,且不同的C语言系统可表示整数的范围可能不同。
不同范围的整型数据所占有的内存空间大小不同。
程序开发人员通过选择能够满足范围要求的类型(short或long),可以减少数据存储空间。
比如,当短整型可以满足数据范围要求时,就没有必要选择需要更多存储空间的长整型。
5、字符’8’和数字8有何不同?字符’8’是字符型,数字8是整型6、C语言有字符串变量吗?没有7、C语言中的运算符“/”和“%”有何区别?C语言中除法运算符“/”与数学中的运算符“÷”的用法和功能完全一样吗?“/”是除法,“%”是取余数,“/”与“÷”的用法和功能不完全一样,“÷”得到的是两数相除后得到的真实值,“/”得到的是两数相除后取整的值。
c语言作业参考答案
c语言作业参考答案C语言作业参考答案C语言作为一门广泛应用于计算机编程领域的编程语言,对于初学者来说,可能会面临一些难题和困惑。
为了帮助大家更好地理解和掌握C语言的知识,本文将提供一些C语言作业的参考答案,以供参考和学习。
一、基础语法题1. 编写一个C程序,输出“Hello, World!”。
#include <stdio.h>int main() {printf("Hello, World!\n");return 0;}2. 编写一个C程序,计算并输出两个整数的和。
#include <stdio.h>int main() {int a, b, sum;printf("请输入两个整数:");scanf("%d %d", &a, &b);sum = a + b;printf("两个整数的和为:%d\n", sum);return 0;}3. 编写一个C程序,判断一个数是否为偶数。
#include <stdio.h>int main() {int num;printf("请输入一个整数:");scanf("%d", &num);if (num % 2 == 0) {printf("%d是偶数。
\n", num);} else {printf("%d是奇数。
\n", num);}return 0;}二、数组和指针题1. 编写一个C程序,输入10个整数,然后输出其中的最大值和最小值。
#include <stdio.h>int main() {int arr[10];int i, max, min;printf("请输入10个整数:\n");for (i = 0; i < 10; i++) {scanf("%d", &arr[i]);}max = arr[0];min = arr[0];for (i = 1; i < 10; i++) {if (arr[i] > max) {max = arr[i];}if (arr[i] < min) {min = arr[i];}}printf("最大值:%d\n", max);printf("最小值:%d\n", min);return 0;}2. 编写一个C程序,将一个字符串反转输出。
C语言课后作业题参考答案
C 语言课后作业题参考答案第二章2.2 用赋值表达式表示下列计算1) c b a x y +=2) 2/5262)(lne d a x -+= 3) y X aX X=+sin cos π24) R R R R =++1111123 5)232)4(7)2(5)2(31x x x x x y ++++=参考答案:1) y=pow(x,a+pow(b,c))或者:exp((a+exp(c*log(b)))*log(x))2) x=pow(log(sqrt(a+d*d))-exp(26),5.0/2)或者:exp(5.0/2*log(log(sqrt(a+d*d))-exe(26)))3) y=sin(x)/(a*x)+fabs(cos(3.1415926*x/2))4) R=1.0/(1.0/R1+1.0/R2+1.0/R3)5) y=x/(1+(x/(3+(pow(2*x,2)/5+(pow(2*x,3)/(7+pow(4*x,2)))))))2.6 编写程序,输入两个整数,分别求它们的和、差、积、商、余数并输出。
参考答案:#include<stdio.h>void main(){int m,n;printf("请输入2个整数\n");scanf("%d%d",&m,&n);printf("%d+%d=%d\n",m,n,m+n);printf("%d-%d=%d\n",m,n,m-n);printf("%d*%d=%d\n",m,n,m*n);printf("%d 除以%d :%f\n",m,n,(float)m/n);printf("%d 除以%d 的余数:%d\n",m,n,m%n);} 2.9 已知摄氏温度C 与华氏温度F 的转换关系是)32(95-=F C ,编写一个摄氏温度与华氏温度转换的程序,输入C ,输出F.参考答案:#include<stdio.h>void main(){float f,c;printf("请输入摄氏温度的值:\n");scanf("%f",&c); //输入33//f=9*c/5+32; //结果为91.4f=9.0/5*c+32; //结果为91.4//f=9/5*c+32; //结果为65printf("转换为华氏温度是:%f\n",f);} 第3章 分支程序设计3.3 编写程序,输入一个字母,若其为小写字母,将其转换成相应的大写字母,然后输出。
C语言1_7章课后作业答案
C语言1-7章课后作业答案第一章 C语言概述【习题1-1】简述C语言的特点。
答:C语言的特点:C语言简洁、紧凑、使用灵活、方便;运算符丰富;数据结构丰富;C是结构式语言;C语法限制不太严格,程序设计自由度大;C语言允许直接访问物理地址;C语言程序生成代码质量高;C语言适用范围大,可移植性好。
【习题1-2】请从以下的4个选项中选择一个正确答案。
(1)A (2)C (3)B (4)D(5)A (6)C【习题1-3】填空。
(1)英文字母、下划线、数字(2)函数(3) 函数头、函数体(4)独立(5);、#、/*…*/、{、}、 main、main【习题1-4】请指出以下哪些是合法的标识符?哪些又是合法的用户标识符。
101 int 3ip x_1 x+1 count 1234Xy x%y if while a.bc x&y _ _1_112 Abc name x break for x=y合法的标识符有:x_1、int、count、Xy、if、while、Abc、name、x、break、for合法的用户标识符有:x_1、count、Xy、Abc、name、x【习题1-5】简述上机调试运行C程序的操作步骤。
答:上机运行C语言程序的操作步骤为:启动Visual C++ 6.0→建立工程→创建源程序文件→输入(编辑)源程序内容→保存源程序文件→编译源程序文件→连接目标程序→执行程序→开始另一个程序。
【习题1-6】上机运行本章的3个例题。
略【习题1-7】参照本章例题,编写一个C语言源程序,输出以下信息:**************Nice to meet you!**************编写程序如下:#include<stdio.h>void main(){printf("**************\n");printf("Nice to meet you!\n");printf("**************\n");}第二章基本数据类型和运算符【习题2.1】上机编辑并调试本章所有例题。
C语言课后全部答案
第一章C语言初步一、选择题1.C2.D3.D4.A5.D6.B7.B 8.B 9.C 10.A二、思考与应用题1.A.字符串常量B.字符串常量C.整型常量D.浮点型常量(double)2.A.long doubleB.long intC.floatD.字符型常量3.A.整型常量B.字符型常量C.字符串常量D.字符串常量4.FirstExample: 10,w is Yz is 5.125.int main(void){return 0;}6.#include<stdio.h>int main(void){print f("Hello World");return 0;}7.#include<stdio.h>int main(void){printf("We are to learn correct");printf("C language here");return 0;}/*main*/8.#include<stdio.h>int main(void){/*Local Definition*/int a;float b;char c;/*Statements*/printf("The end of the program."); return 0;}/*main*/9.#include<stdio.h>int main(void){/*Local Definition*/int a;float b;char c,d;/*Statements*/printf("The end of the program."); return 0;}/*main*/10.#include<stdio.h>int main(void){/*Local Definition*/int a;char b,c,d;float e,f;/*Statements*/printf("The end of the program."); return 0;}/*main*/11.A.char option;B.int sum=0;C.float produce=1;12.A.short code;B.float salesTax=.0825;C.double sum=0;13.#include<stdio.h>int main(void){float cost=172.53;printf("The sales total is: $ %6.2f\n",cost);printf("^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^");return 0;}14.#include<stdio.h>int main(void){printf("******\n");printf("******\n");printf("******\n");printf("******\n");return 0;}15.#include<stdio.h>int main(void){printf("*\n");printf("**\n");printf("***\n");printf("****\n");return 0;}16.#include<stdio.h>int main(void){int x1=1;int x2=10;int x3=100;int x4=1000;int x5=10000;printf("%d %d %d %d %d\n",x1,x2,x 3,x4,x5);printf("%f %f %f %f %f\n",x1,x2,x 3,x4,x5);return 0;}17.#include<stdio.h>int main(void){int x;printf("Please enter an integer:\n");scanf("%d",&x);printf("The number as a character:%c\n",x);printf("The number as a decimal:%d\n",x);printf("The number as a float:%f\n",x);return 0;}三、编程题1.#include<stdio.h>int main(void){int x1;int x2;int x3;printf("Please enter three numbers:");scanf("%d%d%d",&x1, &x2, &x3);printf("\nYour numbers forword:\n");printf("%8d\n%8d\n%8d\n",x1,x2,x3 );printf("Your numbers reversed:\n");printf("%8d\n%8d\n%8d\n",x3,x2,x1 );return 0;}2.#include<stdio.h>int main(void){int x1;int x2;int x3;int x4;int x5;int x6;int x7;int x8;int x9;int x10;printf("Please enter 10 numbers:\n");scanf("%d%d%d%d%d%d%d%d%d%d",&x1, &x2, &x3, &x4, &x5, &x6, &x7, &x8, &x9, &x10);printf("\nYour numbers are:\n");printf("%8d%8d\n",x1,x10);printf("%8d%8d\n",x2,x9);printf("%8d%8d\n",x3,x8);printf("%8d%8d\n",x4,x7);printf("%8d%8d\n",x5,x6);return 0;}3.#include<stdio.h>int main(void){int x1;int x2;int x3;int x4;int x5;int x6;int x7;int x8;int x9;printf("Input:\n");printf(" ");scanf("%d%d%d%d%d%d%d%d%d",&x1, &x2, &x3, &x4, &x5, &x6, &x7, &x8, &x9);printf("\nOutput\n");printf("%8d,%d,%d\n",x1,x2,x3);printf("%8d,%d,%d\n",x4,x5,x6);printf("%8d,%d,%d\n",x7,x8,x9);return 0;}第二章表达式与简单程序设计一、选择题1.A2.D3.C4.B5.B6.D7.B二、思考与应用题1.A.2 B.8 C.8 D.0 E.11 2.A.4,4B.4,4 C.4,4 D.2,3 E.4,53.A.12 B.-27 C.14 D.2 E.4 4.A.22.52 B.4.5 C.13.333333 D.0.882353 E.0.075.ABCEF6.A.5 B.2 C.4 D.1 E.7.A.5 B.2 C.4 D.-3 E.6 8.A.5 B.294 C.4 D.29 E.9 9. 50 50 100 2510.#include<stdio.h>int main(void){float x;float y;float p;float s;float total;printf("Please enter x and y:\n");scanf("%f%f",&x,&y);p=x*y;s=x+y;total=s*s+p*(s-x)*(p+y);printf("total=%f",total);return 0;}11.#include<stdio.h>int main(void){int x,y,z;printf("Please enter two integers:\n");scanf("%d%d",&x,&y);z=x*y;printf("%d*%d=%d",x,y,z);return 0;}12.#include<stdio.h>int main(void){float x;int y;printf("Please enter a floating point number:\n");scanf("%f",&x);y=(int)x%10;printf("%d",y);return 0;}13.#include<stdio.h>int main(void){float x;int y;printf("Please enter a floating point number:\n");scanf("%f",&x);y=(int)x/10%10;printf("%d",y);return 0;}14.#include<stdio.h>int main(void){float x;float y;float c;float s;p rintf("Please enter length and width:\n");s canf("%f%f",&x,&y);c=2*(x+y);s=x*y;p rintf("The circumference is %f\n",c);p rintf("The measure of area is %f",s);r eturn 0;}15.#include<stdio.h>int main(void){int a;f loat r;p rintf("Please enter an angle(integer):\n");s canf("%d",&a);r=a/57.295779;p rintf("%d°is %.5f radians",a,r);r eturn 0;}16.#include<stdio.h>int main(void){float c;float F;printf("Please enter centigrade:\n");scanf("%f",&c);F=32+(c*180.0/100.0);printf("Fahrenheit is %f ",F);return 0;}17.(1)double m,v,KinEn;KinEn=m*v*v/2;(2)double b,c,res;res=(b+c)/(2*b*c);18.(1)#include<stdio.h>int main(void){int x=25;x=x+5;printf("%d\n",x);x=x+5;printf("%d\n",x);return 0;}(2)#include<stdio.h>int main(void){int x=10;x=x+2;printf("%d\n",x);x=x+2;printf("%d\n",x);return 0;}(3)#include<stdio.h>int main(void){int x=32;x=x*2;printf("%d\n",x);x=x*2;printf("%d\n",x);return 0;}三、编程题1.A.#include<stdio.h>int main(void){float x;float y;printf("Please enter an number(inch):\n");scanf("%f",&x);y=x/12;printf("%f inches is %f feet ",x,y);return 0;}B.#include<stdio.h>int main(void){float x;float y;printf("Please enter an number(inch):\n");scanf("%f",&x);y=x/36;printf("%f inches is %f yards ",x,y);return 0;}C.#include<stdio.h>int main(void){float x;float y;printf("Please enter an number(inch):\n");scanf("%f",&x);y=x*2.54;printf("%f inches is %f centimeters ",x,y);return 0;D.#include<stdio.h>int main(void){float x;float y;printf("Please enter an number(inch):\n");scanf("%f",&x);y=x/39.37;printf("%f inches is %f meters ",x,y);return 0;}2.#include<stdio.h>int main(void){int fib1;int fib2;int fib3;fib1=13+21;fib2=21+fib1;fib3=fib1+fib2;printf("%d,%d,%d",fib1,fib2,fib3);return 0;}3.#include<stdio.h>int main(void){int x;int b1;int b2;int b3;int b4;int b5;printf("Please enter an integer(0-32767):\n");scanf("%d",&x);b1=x%10;b2=x/10%10;b3=x/100%10;b4=x/1000%10;b5=x/10000%10;printf("%4d%4d%4d%4d%4d\n",b5,b4,b3,b2,b1);printf("%4d%4d%4d%4d%\n",b4,b3,b2,b1);printf("%4d%4d%4d\n",b3,b2,b1);printf("%4d%4d\n",b2,b1);printf("%4d",b1);return 0;}第三章分支程序设计一、选择题1.C2.D3.A4.B5.B6.A7.C8.C 9.A二、思考与应用题1.A.0 B.1 C.1 D.0 E.0 2.A.x>=y B.x<y C.x!=y D.x==y E.x>y3.A.0 B.1 C.1 D.1 E.0 4.x=4,y=3,z=25.x=4,y=1,z=26.x=4,y=2,z=27.x=4,y=1,z=28.x=0,y=0,z=19.x=2,y=0,z=210.x=0,y=0,z=111.x=0,y=0,z=112.x=-1,y=0,z=013.x=0,y=1,z=014.x=1,y=3,z=115.x=1,y=3,z=116.x=4,y=3,z=017.if(aChar=='E'){c++;printf("Value is E\n");}18.switch(ch){case ‘E’:case ‘e’:countE++;break;case ‘A’:case ‘a’:countA++;break;case ‘I’:case ‘i’:countI++;break;default:printf("Error-Not A,E,or I\a\n"); }三、编程题1.#include<stdio.h>main( ){int x,x1,x2,x3;char grade;printf("please enter three text scores(0-100):\n");scanf("%d%d%d",&x1,&x2,&x3);x=(x1+x2+x3)/3;if(x>=90)grade='A';else if(x>=70&&x<90)if(x3>90)grade='A';elsegrade='B';else if(x>=50&&x<70)if((x2+x3)/2>70)grade='C';elsegrade='D';else if(x<50)grade='F';printf("%c\n",grade);}2.#include<stdio.h>main( ){int year;printf("please enter a year:\n");scanf("%d",&year);if(year%4==0&&year%100!=0||year%400==0)printf("%d is a leap year!\n",year);elseprintf("%d is a non-leap year!\n",year);}3.#include<stdio.h>main( ){i ntyearNow,monthNow,dayNow,year,month,day,x;printf("Please enter the date today(month day year):\n");scanf("%d%d%d",&monthNow,&dayNow,&yearNow);printf("Please enter your birthday(month day year):\n");s canf("%d%d%d",&month,&day,&year);if(monthNow<month)x=yearNow-year-1;else if(monthNow==month)if(dayNow<day)x=yearNow-year-1;elsex=yearNow-year;elsex=yearNow-year;printf("You are %d years old!\n",x);}4.#include<stdio.h>#include<stdlib.h>#include<time.h>main( ){int number,Ynumber;srand(time(NULL));number=rand()%20+1;printf("I am thinking of a number between 1 and 20.\n");printf("Can you guess what it is?");scanf("%d",&Ynumber);if(Ynumber==number)printf("Congratulations!You did it.");else{if(Ynumber>number)printf("Your guess is high.Try again:");elseprintf("Your guess is low.Try again:");scanf("%d",&Ynumber);if(Ynumber==number)printf("Congratulations!You did it.");else{if(Ynumber>number)printf("Your guess is high.Try again:");elseprintf("Your guess is low.Try again:");scanf("%d",&Ynumber);if(Ynumber==number)printf("Congratulations!You did it.");else{if(Ynumber>number)printf("Your guess is high.Try again:");elseprintf("Your guess is low.Try again:");scanf("%d",&Ynumber);if(Ynumber==number)printf("Congratulations!You did it.");else{if(Ynumber>number)printf("Your guess is high.Try again:");elseprintf("Your guess is low.Try again:");scanf("%d",&Ynumber);if(Ynumber==number)printf("Congratulations!You did it.");else{printf("sorry.The number was %d.\n",number);printf("You should have gotten it by now.\n");printf("Better luck next time.");}}}}}}5.#include<stdio.h>main( ){int year,month,day,x=0,y,z;printf("Please enter your birthday:(year month day)\n");scanf("%d%d%d",&year,&month,&day);y=((year-1)*365+((year-1)/4)-((year-1)/100) +((year-1)/400))%7;switch(month){case 12:x=x+30;case 11:x=x+31;case 10:x=x+30;case 9:x=x+31;case 8:x=x+31;case 7:x=x+30;case 6:x=x+31;case 5:x=x+30;case 4:x=x+31;case 3:x=x+28;case 2:x=x+31;case 1:x=x+0;}if(year%4==0&&year%100!=0||year%400==0)day++;z=(x+day+y)%7;switch(z){case 0:printf("The day of your birthday is Sunday!");break;case 1:printf("The day of your birthday is Monday!");break;case 2:printf("The day of your birthday is Tuseday!");break;case 3:printf("The day of your birthday is Wednesday!");break;case 4:printf("The day of your birthday is Thursday!");break;case 5:printf("The day of your birthday is Friday!");break;case 6:printf("The day of your birthday is Saturday!");break;}}6.#include<stdio.h>#include<math.h>main( ){int a,b,c,p;float x1,x2;printf("Please enter a,b,c:\n");scanf("%d%d%d",&a,&b,&c);p=b*b-4*a*c;if(a==0)if(b==0)printf("There is no solution!");else{x1=-(float)c/b;printf("The solution is x1=%f",x1);}elseif(p<0)printf("There is no real solution!");else{x1=-b+sqrt(p)/(2*a);x2=-b-sqrt(p)/(2*a);printf("The solutions are x1=%f,x2=%f",x1,x2);}}。
C语言习题带答案
练习5-1答案一、选择题1-合法的数组说明语句是(B)。
A. int a[]=H string n; C. char a二”string";B・ int a[]={0J,2,345};D. char a[习二「0; TJ2「3字4字2.以下对一维整型数组a的说明正确的是(D)。
A.inta(10); B・ int n=10, a[n]; C・ intn; D. #define SIZE 10scanf("%d", &n); int a[SIZE];int a[n];3.已知:inta[10];,则对a数组元素的正确引用是(D)。
A・ a[I0] B・ a[3.5] C・ a(5) D. a[10-10]4.以下对一维数组a进行正确初始化的语句是(C)。
A・ int a[l0]=(05 0, 0, 0. 0); B. int a[10]={};C. int a[]={0};D. int a[2]={10, 9,8};5.对以下说明语句的正确理解是(B)。
int a[10]={6, 7, 8, 9, 10);A.将5个初值依次赋给a[l]至a[5]B.将5个初值依次赋给a[0]至a[4]C・将5个初值依次赋给a[6]至a[10]D・因为数组长度与初值的个数不相同,所以此语句不正确二、填空题6.求所有不超过200的N值,N的平方是具有对称性质的回文数。
所谓回文数就是将一个数从左到右与从右到左读都是一样的,例如:34543和1234321都是回文数。
例如:满足题意要求的数有:N=l, 11*11 = 121; N=lll, lll*lll=12321o#include <stdio.h>main(){int m[16], n, i, t, count=0; long a, k;printf(H Result is:\n H);for (n=10; n<200: n++) { k=0;t=l;a=n*n;for (i=I; a!=0; i++) {①;a/=10;} for (; i>l; i~){ k+=m[i-l]*t;②;)if (③)printf(H%2d:%10d %10d\n H, ++count, n, n*n);})则①为(m[i]=a%10;).②为(嘗二10;)、③为(k=n*n)o7•设数组a包括10个整型元素。
C语言习题全集 答案
目录第一单元程序设计和C语言.................................................... 错误!未定义书签。
第二单元顺序程序设计............................................................ 错误!未定义书签。
第三单元分支程序设计............................................................ 错误!未定义书签。
第四单元循环程序设计............................................................ 错误!未定义书签。
第五单元数组........................................................................ 错误!未定义书签。
第六单元函数........................................................................ 错误!未定义书签。
第七单元指针........................................................................ 错误!未定义书签。
第八单元结构体和共用体........................................................ 错误!未定义书签。
第九单元文件........................................................................ 错误!未定义书签。
附加题............................................................................................ 错误!未定义书签。
C语言200道练习题及答案
一维数组
题目1
题目2
题目3
题目4
求一维数组中的最大值 和最小值。
将一维数组中的元素逆 序存放。
查找一维数组中指定的 元素,并返回其下标。
求一维数组中所有元素 的和。
二维数组
题目5
题目6
求二维数组中所有元素的最大值和最小值 。
将二维数组转置,即行列互换。
题目7
题目8
查找二维数组中指定的元素,并返回其位 置。
C语言200道练习题 及答案
汇报人:XX
目录
• 基础知识练习题 • 数组与字符串练习题 • 函数与模块化练习题 • 指针与内存管理练习题 • 数据结构与算法练习题 • 综合应用练习题
01
基础知识练习题
变量与数据类型
声明整型变量并赋值
int a = 10;
声明字符型变量并赋值
char c = 'A';
代码优化
通过减少不必要的计算、消 除冗余代码等方式对代码进 行优化。
并行计算与多线程
了解并行计算和多线程的基 本概念,探索在程序中应用 并行计算和多线程技术提高 性能的可能性。
THANKS
感谢观看
掌握如何使用malloc()、calloc() 等函数在堆区动态分配内存空间
。
动态内存释放函数
了解如何使用free()函数释放之前 分配的内存空间,以避免内存泄漏 。
内存分配失败处理
熟悉在动态内存分配过程中,如何 处理分配失败的情况,如检查返回 值是否为NULL等。
05
数据结构与算法练习题
结构体与联合体
01
掌握如何定义指向函数的指针变量,以及如何通过函数指针调
用函数。
c语言作业答案
No.: Name:第1讲C语言概述注:本系列习题中符号表示一串字符中的空格;符号表示下划线;符号ê表示换行回车;即键盘上Enter键..一、选择题1. 一个C程序的执行是从A ..A 本程序main函数开始;到main函数结束B 本程序文件第一个函数开始;到最后一个函数结束C 本程序文件第一个函数开始;到本main函数结束D 本程序main函数开始;到本程序文件最后一个函数结束2. 以下叙述不正确的是D ..A 一个C源程序必须包含一个main函数B 一个C源程序可由一个或多个函数组成C C程序的基本组成单位是函数D 在C程序中;注释说明只能位于一条语句的后面3. 以下叙述正确的是C ..A 在对一个C程序进行编译的过程中;可发现注释中的拼写错误B 在C程序中;main函数必须位于程序的最前面C 语言本身没有输入输出语句D C程序的每行中只能写一条语句4. 一个C语言程序是由B ..A 一个主程序和若干个子程序组成B 函数组成C 若干过程组成D 若干子程序组成5. 以下叙述中正确的是C ..A C语言比其他语言高级B C语言可以不用编译就能被计算机识别执行C C语言以接近英语国家的自然语言和数学语言作为语言的表达形式D C语言出现的最晚;具有其他语言的一切优点6. 下列叙述中正确的是D ..A C语言编译时不检查语法B C语言的子程序有过程和函数两种C C语言的函数可以嵌套定义D C语言的函数可以嵌套调用7. 以下叙述中正确的是A ..A 构成C程序的基本单位是函数B 可以在一个函数中定义另一个函数C main函数必须放在其他函数之前D 所有被调用的函数一定要在调用之前进行定义8. C语言规定;在源程序中;main函数的位置C ..A 必须在最开始B 必须在系统调用的库函数的后面C 可以任意D 必须在最后9. 下列选项中不是结构化程序基本结构的是B ..A 顺序结构B 分支结构C 选择结构D 循环结构10. 下列四组选项中;均不是C语言关键字的是A ..A define IF typeB getc char printfC include case scanfD while go pow11. 下列四组选项中;均是不合法的标识符的是B ..A W P 0 doB b-a goto intC float la0 AD -123 abc TEMP12. 下列可用于C语言标识符的一组是B ..A void; define; WORDB a3 b3; 123; CarC For; -abc; IF CaseD 2a; DO; sizeof13. 以面的C程序中;错误的是D ..A mainB main{ int x;y;z; { int x;y;z;x=0;y=x-1; x=0;y=x+1;z=x+y;} z=x+y;}C mainD main{ int x;z; { int x;y;z;int y; x=0;y=x+1;x=0;y=x+1; z=x+y;}z=x+y;}14. C语言中的标识符只能由字母;数字和下划线三种字符组成;且第一个字符C ..A 必须为字母B 必须为下划线C 必须为字母或下划线D 可以是字母;数字和下划线中任一字符15. 下面各选项中;均是C语言标识符的选项组是B ..A 33 we autoB 23 me 3ewC 43 3e elseD ER -DF 32二、填空题1. 国际上C语言常见的三个标准是:标准C 、ANSI C 和ISO C ..2. C语言源程序的文件格式为.c和.h ..3. 请描述C程序中main函数的作用:接受系统调用;开始程序的执行;直至程序结束..三、程序编写题请在本页背面作答1. 编写一个C程序;输出以下信息Very Good2. 编写程序;实现求整数10、20和35的平均值提示:注意给出的是三个整数;求出的平均值不是整数1No.: Name:第2讲C语言基本数据类型一、选择题1. 若x、i、j、k都是int型变量; 则计算下面表达式后;x的值为C ..x=i=4;j=16;k=32A 4B 16C 32D 522. 下列四组选项中;均是合法转义字符的是A ..A ‘\"’ ‘\\’ ‘\n’B ‘\’ ‘\017’ ‘\"’C ‘\018’ ‘\f’ ‘xab’D ‘\\0’ ‘\101’ ‘xlf’3. 下面正确的字符常量是D ..A "c"B ‘\\’’C ‘’D ‘K’4. 以下叙述不正确的是D ..A 在C程序中;逗号运算符的优先级最低B 在C程序中;MAX和max是两个不同的变量C 若a和b类型相同;在计算了赋值表达式a=b后;b中的值将放入a中;b中的值不变D 从键盘输入数据时;对于整型变量只能输入整型数值;对于实型变量只能输入实型数值5. 以下叙述正确的是C ..A 在C程序中;每行只能写一条语句B 若a是实型变量;C程序中允许赋值a=10;因此实型变量中允许存放整型数C 在C程序中;%是只能用于整数运算的运算符D 在C程序中;无论是整数还是实数;都能被准确无误地表示6. 已知字母A的ASCII码为十进制数65;且c2为字符型;则执行语句c2=‘A’+‘6’-‘3’后;c2的值为A ..A DB 68C 不确定的值D C7. sizeoffloat是B ..A 一个双精度型表达式B 一个整型表达式C 一种函数表达式D 一个不合法的表达式8. 设C语言中;一个int型数据在内存中占2个字节;则unsigned int 型数据的取值范围为C ..A 0~255B 0~32767C 0~65535 D9. 设有说明:char w; int x; float y; double z;则表达式wx+z-y值的数据类型D ..A floatB charC intD double10. 设以下变量均为int类型;则值不等于7的表达式是C ..A x=y=6;x+y;x+1B x=y=6;x+y;y+1C x=6;x+1;y=6;x+yD y=6;y+1;x=y;x+111. C语言中的基本数据类型包括B ..A 整型、实型、逻辑型B 整型、实型、字符型C 整型、字符型、逻辑型D 字符型、实型、逻辑型12. 若变量已正确定义并赋值;以下符合C语言语法的表达式是B ..A a:=b+1B a=b=c+2C int 18.5%3D a=a+7=c+b13. C语言中运算对象必须是整型的运算符是A ..A %=B /C =D <=14. 若变量a;i已正确定义;且i已正确赋值;合法的语句是B ..A a==1B ++i;C a=a++=5;D a=inti;15. int a=7;float x=2.5;y=4.7;则表达式x+a%3intx+y%2/4的值是A ..A 2.500000B 2.750000C 3.500000D 0.00000016. 在16位C编译系统上; 若定义long a;; 则能给a赋40000的正确语句是D ..A a=20000+20000;B a=400010;C a=30000+10000;D a=4000L10L;17. 设有int x=11;则表达式x++1/3的值是A ..A 3B 4C 11D 1218. 下列数据中;不合法的C语言实型数据的是C ..A 0.123B 123e3C 2.1e3.5D 789.019. 若变量a是int类型;并执行了语句:a=‘A’+1.6;;则正确的叙述是D ..A a的值是字符CB 不允许字符型和浮点型相加C a的值是浮点型D a的值是字符‘A’的ASCII值加上120. 设变量n为float类型;m为int类型;则以下能实现将n中的数值保留小数点后两位;第三位进行四舍五入运算的表达式是B ..A n=n100+0.5/100.0B m=n100+0.5;n=m/100.0C n=n100+0.5/100.0D n=n/100+0.5100.021. 下面四个选项中;均是不正确的8进制数或16进制数的选项是D ..A 016 0x8f 018B 0abc 017 0xaC 010 -0x11 0x16D 0a12 7ff -12322. 以下选项中;与k=n++完全等价的表达式是A ..A k=n;n=n+1B n=n+1;k=nC k=++nD k+=n+123. 下面均是合法整型常量的选项是A ..A 160 -0xffff 011B -0xcdf 01a 0xeC -01 986012 0668D -0x48a 2e5 0x24. 假定x和y为double型; 则表达式x=2;y=x+3/2的值是D ..A 3.500000B 3C 2.000000D 3.00000025. 以下变量x;y;z均为double类型且已正确赋值;不能正确表示数学式子x÷y÷z的C语言表达式是A ..A x/yzB x1/yzC x/y1/zD x/y/z26. 已知int k;m=1;执行语句k=-m++;后;k的值是A ..A -1B 0C 1D 227. 已知int m;float k;正确的语句是D ..A int k%mB intk%mC intk%mD intk%m28. 不能进行++和--运算的数据类型为D ..A 指针B 整型C 长整型D 常量2No.: Name:29. putchar函数可以向终端输出一个D ..A 整型变量表达式B 实型变量值C 字符串D 字符或字符型变量值30. printf函数中用到格式符%5s;其中数字5表示输出的字符串占用5列..字符串长度大于5;则输出按方式B ;如果字符串长度小于5;则输出按方式C ..A 从左起输出该字符串;右补空格B 按原字符长从左向右全部输出C 右对齐输出该字符串;左补空格D 输出错误信息31. 阅读以下程序;当输入数据的形式为:25;13;10ê;则正确的输出结果为D ..main{ int x;y;z;scanf "%d%d%d";&x;&y;&z;printf "x+y+z=%d\n";x+y+z;}A x+y+z=48B x+y+z=35C x+z=35D 不确定32. 根据下面的程序及数据的输入和输出形式;程序中输入语句的正确形式应该为A ..main{ char ch1;ch2;ch3;输入语句printf "%c%c%c";ch1;ch2;ch3;}输入形式:A B C输出形式:A BA scanf"%c%c%c";&ch1;&ch2;&ch3;B scanf"%c;%c;%c";&ch1;&ch2;&ch3;C scanf"%c %c %c";&ch1;&ch2;&ch3;D scanf"%c%c";&ch1;&ch2;&ch3;33. 已知ch是字符型变量;下面不正确的赋值语句是A ..A ch=‘a+b’;B ch=‘\0’;C ch=‘7’+‘9’;D ch=5+9;34. 若变量已正确说明为float型;要通过语句scanf "%f%f%f";&a;&b;&c;给a赋予10.0;b赋予22.0;c赋予33.0;下列不正确的输入形式是B ..A 10ê22ê33B 10.0;22.0;33.0êC 10.0ê22.0 33.0êD 10 22ê33ê35. 下列程序段的输出结果是: C ..int a=1234; float b=123.456;double c=12345.54321;printf"%2d;%2.1f;%2.1f";a;b;c;A 无输出B 12;123.5;12345.5C 1234;123.5;12345.5D 1234;123.4;1234.536. 已有定义int a=-2;和输出语句printf"%8lx";a;以下正确的叙述是D ..A 整型变量的输出形式只有%d一种B %x是格式符的一种;可适用于任何一种类型的数据C %x是格式符的一种;其变量的值按十六进制输出;但%8lx是错误的D %8lx不是错误的格式符;其中数字8规定了输出字段的宽度二、填空题1. 若有定义:int m=5;y=2;;则计算表达式y+=y-=m=y后的y值是-16 ..2. 在C语言中;一个int型数据在内存中占2个字节;则int型数据的取值范围为-32768 32767 ..3. 若a是int型变量;则计算表达式a=25/3%3后a的值为2 ..4. 若x和n均是int型变量;且x和n的初值均为5;则计算表达式x+=n++后x的值为10 ;n的值为6 ..5. 若有定义:char c="\0108F\0";则字符串c中包含的字符个数为5 ..6. 定义int a=5;b;;则执行表达式b=++a--a之后;变量b的值为25 ..7. 已知字母a的ASCII码为十进制数97;且设ch为字符型变量;则表达式ch=‘a’+‘8’-‘3’的值为102或‘f’ ..8. 以下程序段的输出结果是i:dec=-4;oct=177774;hex=fffc;unsigned=65532 ..main{ short i; i=-4; printf"\ni:dec=%d;oct=%o;hex=%x;unsigned=%u\n";i;i;i;i;}9. 假设变量a和b均为整型;请填空使得以下语句可以不借助任何变量把a、b中的值进行交换..a+= b ; b=a- b ; a-= b ;10. 有一输入语句scanf"%d";k; 则不能使float类型变量k得到正确数值的原因是:1 k应该加上取地址符号&;成为&k 和2 float型数据不能用%d格式来输入..三、程序编写题请在本页背面作答1. 输入圆半径5和圆心角60_C;输出圆的周长、面积和扇形周长、面积..2. 输入一个华氏温度;要求输出摄氏温度..公式为C _ 59 pF _ 32q;输出要有文字说明;取2位小数..3No.: Name:第3讲算法与程序基本结构一、选择题1. 如下程序的输出结果是A ..main{ int x=1;a=0;b=0;switchx{ case 0: b++;case 1: a++;case 2: a++;b++;}printf"a=%d;b=%d\n";a;b;}A a=2;b=1B a=1;b=1C a=1;b=0D a=2;b=22. 以下程序执行后输出结果是C ..main{ int i=1;j=1;k=2;ifj++||k++ &&i++printf"%d;%d;%d\n";i;j;k;}A 1;1;2B 2;2;1C 2;2;2D 2;2;33. 如下程序的输出结果是C ..main{ float x=2.0;y;ifx<0.0 y=0.0;else ifx<10.0 y=1.0/x;else y=1.0;printf"%f\n";y;}A 0.000000B 0.250000C 0.500000D 1.0000004. 设int x=1;y=1;表达式x||y--的值是B ..A 0B 1C 2D -15. 若运行时给变量x输入12;则以下程序的运行结果是A ..main{ int x;y;scanf"%d";&x;y=x>12x+10:x-12;printf"%d\n";y;}A 0B 22C 12D 106. 在C程序中;判逻辑值时;用”非0”表示逻辑值”真”;又用”0”表示逻辑值”假”..在求逻辑值时;逻辑表达式值为”真”和”假”分别用A 表示..A 1和0B 0和1C 非0和非0D 1和17. 以下4个选项中;不能看做一条语句的是D ..A ;B a=5;b=2.5;c=3.6;C ifa<5 ;D ifb=5 x=2;y=6;8. 能正确表示逻辑关系:"a≥10或a≤0"的C语言表达式是D ..A a>=10 or a<=0B a>=0|a<=10C a>=10&&a<=0D a>=10||a<=09. 如下程序的输出结果是C ..main{ int a=2;b=-1;c=2;ifa<bifb<0 c=0;else c++;printf"%d\n";c;}A 0B 1C 2D 310. 设x;y和z都是int型变量;且x=3;y=4;z=5;则下面表达式中;值为0的表达式D ..A x&&yB x<=yC x||++y&&y-zD x<y&&z||111. 若有条件表达式expa++:b--;则以下表达式中能完全等价于表达式exp 的是B ..A exp==0B exp=0C exp==1D exp=112. 以下程序的输出结果是A ..main{ int a=4;b=5;c=0;d;d=a&&b||c;printf"%d\n";d;}A 1B 0C 非0的数D -113. 设有int a=1;b=2;c=3;d=4;m=2;n=2;执行m=a>b&& n=c>d后n的值是B ..A 1B 2C 3D 414. 下面程序D ..main{ int a=5;b=0;c=0;ifa=b+c printf"\n";else printf"$$$\n";}A 有语法错不能通过编译B 可以通过编译但不能通过连接C 输出D 输出$$$15. 当k的值不为0时;在下列选项中能够将k的值赋给变量m和n的是B ..A m=k=nB m=k&&n=kC m=k||n=kD k=m&&n=k16. 已知int t=0; while t=1 {...}则以下叙述正确的是B ..A 循环控制表达式值为0B 循环控制表达式值为1C 循环控制表达式不合法D 以上说法都不对17. 下面程序输出结果是B ..main{ int n=9;whilen>6 {n--; printf"%d";n;}}A 987B 876C 8765D 987618. 在下列程序段中;没有构成死循环的是D ..A B C Dint i=10; for;;; int k=10; int s=36;while1 do{k++;} whiles{i=i%3+1; whilek>10; --s;ifi>10break;}19. 以下程序段的描述;正确的是C ..x=-1; do { x=xx; }whilex;A 是死循环B 循环执行两次C 循环执行一次D 有语法错误4No.: Name:20. 在下述程序中;判断i>j共执行的次数是D ..main{ int i=0;j=10; k=2; s=0;{ for ;;{ i+=k;ifi>j {printf"%d";s; break;}s+=i;}}A 4B 7C 5D 621. 下面程序的功能是把316表示为两个加数的和;使两个加数分别能被13和11整除;请选择填空..满足题意的选项是B ..include <stdio.h>main{ int i=0;j;k;do{i++;k=316-13i;}while ;j=k/11;printf"316=13%d+11%d";i;j;}A k/11B k%11C k/11==0D k%11==022. 下面程序的运行结果是B ..include <stdio.h>main{ int a=1;b=10;do {b-=a;a++;}whileb--<0;printf"a=%d;b=%d\n";a;b;}A a=3;b=11B a=2;b=8C a=1;b=-1D a=4;b=923. 执行语句fori=1;i++<4;;后变量i的值是C ..A 3B 4C 5D 不定24. 关于程序段int k=10; whilek=0 k=k-1;下面描述中正确的是C ..A while循环执行10次B 循环是无限循环C 循环体语句一次也不执行D 循环体语句执行一次25. 表达式for表达式1; ;表达式3可理解为B ..A for表达式1;0;表达式3B for表达式1;1;表达式3C for表达式1;表达式1;表达式3D for表达式1;表达式3;表达式326. 以下程序的输出结果是B ..main{ int i;j;x=0;fori=0;i<2;i++{ x++;forj=0;j<3;j++ {ifj%2 continue;x++;}x++;}printf"x=%d\n";x;}A x=4B x=8C x=6D x=1227. 以下描述中正确的是C ..A 因do-while循环中循环体语句只能是一条可执行语句;所以循环体内不能使用复合语句B do-while循环由do开始;用while结束;在while表达式后面不能写分号C 在do-while循环体中;先执行一次循环;再进行判断D do-while循环中;根据情况可以省略while28. 针对下列语句说法正确的是A ..int i;x;fori=0;x=0;i<=9&&x=876;i++ scanf"%d";x;A 最多的执行10次B 最多执行9次C 是无限循环D 循环体一次也不执行29. C语言中while 和do-while循环的主要区别是A ..A do-while的循环体至少无条件执行一次B while的循环控制条件比do-while更严格C do-while允许从外部转到循环体内D do-while 的循环体不能是复合语句30. 执行程序段int k=1; while++k<4;后k值为A ..A 4B 5C 6D 8二、填空题1. 执行程序段int a=1234; printf "%2d\n";a;的输出结果是1234 ..2. 以下程序的输出结果是16 ..main{int a=0; a+=a=8; printf"%d\n";a;}三、程序编写题如本页空间不够请在背面作答1. 编写程序求解求和公式S _ 1 12 13 14 . . .的前10项..要求画出流程图ANSI流程图和NS流程图..2. 编写程序实现输入整数n;输出如下所示数字组成的菱形如n=5..要求画出流程图ANSI流程图和NS流程图..11 2 11 2 3 2 11 2 3 4 3 2 11 2 3 4 5 4 3 2 11 2 3 4 3 2 1 1 2 3 2 11 2 11。
C语言各章作业及练习题
第二章作业题答案1 进制转换(1)7A.3D (或者7A.3DH)(2)01001011.01010111,4B.57 (二进制最前面的“0”可以省去;十六进制也可4B.57H)2 码制转换(1)原码:01010; 真值:+0.1010(2)原码:10110; 真值:-0.01103 设某机器字长为8位:(1)-1(2)-2-7(还可以进一步计算为:-0.0078125)4.浮点数转换为二进制:(A27F)16= (1010001001111111)2阶码补码为:E补=101000,则阶码真值E = -11000 = -24;尾数补码:M补= 1.001111111,尾数真值M = - 0.110000001;则(A27F)16的十进制真值为:- (2-1+2-2+2-9) x 2-24 = -(2-25+2-26+2-33)上面的结果还可以进一步化简写成分数或小数,只写到这一步也可以。
5将十进制数-7.25转换为IEEE754短浮点格式:(1)转换为二进制:(-7.25)10=(-111.01)2(2)规格化:(-111.01)2 = (-1.1101)2 x22(3)计算阶码(移码表示):E移= 127+2 = (129)10 = (10000001) 2(4)短浮点格式:(11000000111010000000000000000000)2 = (C0E80000)166.(1) 1000H,1006H(2) 1002H,2374H(3) E529H7 设当前堆栈状态如图3所示,按字编址,下列各小题分别执行,写出结果:(1)(SP) = 1003H, (R0) = 32H(2)(SP) = 1001H,(R0)=1000H,存储单元1000H~1002H的值分别是30H、1000H、32H。
第六章作业题一、选择题1.某字符显示器,分辨率为25x80,则第2行第5列(序号均从0开始)字符的代码,应存放在基本显示缓存的第()单元中(从0号单元开始)。
C语言经典练习题50道(附答案)
1.**打印Hello World**练习:编写一个C程序,打印"Hello,World!"到屏幕上。
#include<stdio.h>int main(){printf("Hello,World!\n");return0;}2.**计算两个整数的和**练习:编写一个程序,接受两个整数,然后计算它们的和并打印结果。
#include<stdio.h>int main(){int a=5,b=7;int sum=a+b;printf("Sum:%d\n",sum);return0;}3.**判断奇数或偶数**练习:编写一个程序,接受一个整数,然后判断它是否为奇数或偶数。
#include<stdio.h>int main(){int num=10;if(num%2==0){printf("%d is even.\n",num);}else{printf("%d is odd.\n",num);}return0;}4.**计算阶乘**练习:编写一个程序,计算给定整数的阶乘。
#include<stdio.h>int main(){int n=5;int factorial=1;for(int i=1;i<=n;i++){factorial*=i;}printf("Factorial of%d is%d\n",n,factorial);return0;}5.**反转字符串**练习:编写一个程序,接受一个字符串,然后反转它并打印出来。
#include<stdio.h>#include<string.h>int main(){char str[]="Hello,World!";int len=strlen(str);for(int i=len-1;i>=0;i--){printf("%c",str[i]);}printf("\n");return0;}6.**检查素数**练习:编写一个程序,判断一个整数是否为素数。
C语言-习题集参考答案全部
目录- 1 -目录第一章C语言基础知识参考答案 ................................................................................ - 2 - 第二章顺序结构参考答案.......................................................................................... - 5 - 第三章选择结构参考答案.............................................................................................. - 7 - 第四章循环结构参考答案............................................................................................ - 11 - 第五章函数参考答案................................................................................................ - 15 - 第六章指针参考答案.................................................................................................... - 18 - 第七章一维数组参考答案............................................................................................ - 21 - 第八章二维数组参考答案.......................................................................................... - 28 - 第九章字符串参考答案.......................................................................................... - 31 - 第十章对C语言的深入讨论参考答案 ....................................................................... - 33 - 第十一章结构体与共用体参考答案............................................................................ - 34 - 第十二章文件参考答案........................................................................................ - 35 -全国计算机等级考试二级教程C 语言习题集参考答案- 2 - 第一章C语言基础知识参考答案一,选择题1 C2 D3 A4 C5 A6 D7 C 分析:C答案以数字开头了8 D 分析:int 是关键字9 C 10 D 11 B12 D 分析:Visual C++6.0中int类型的变量占的字节数为4。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
No.: Name:第1讲C语言概述注:本系列习题中符号表示一串字符中的空格,符号表示下划线,符号ê表示换行回车,即键盘上Enter键。
一、选择题1. 一个C程序的执行是从A 。
A) 本程序main函数开始,到main函数结束B) 本程序文件第一个函数开始,到最后一个函数结束C) 本程序文件第一个函数开始,到本main函数结束D) 本程序main函数开始,到本程序文件最后一个函数结束2. 以下叙述不正确的是D 。
A) 一个C源程序必须包含一个main函数B) 一个C源程序可由一个或多个函数组成C) C程序的基本组成单位是函数D) 在C程序中,注释说明只能位于一条语句的后面3. 以下叙述正确的是C 。
A) 在对一个C程序进行编译的过程中,可发现注释中的拼写错误B) 在C程序中,main函数必须位于程序的最前面C) 语言本身没有输入输出语句D) C程序的每行中只能写一条语句4. 一个C语言程序是由B 。
A) 一个主程序和若干个子程序组成B) 函数组成C) 若干过程组成D) 若干子程序组成5. 以下叙述中正确的是C 。
A) C语言比其他语言高级B) C语言可以不用编译就能被计算机识别执行C) C语言以接近英语国家的自然语言和数学语言作为语言的表达形式D) C语言出现的最晚,具有其他语言的一切优点6. 下列叙述中正确的是D 。
A) C语言编译时不检查语法B) C语言的子程序有过程和函数两种C) C语言的函数可以嵌套定义D) C语言的函数可以嵌套调用7. 以下叙述中正确的是A 。
A) 构成C程序的基本单位是函数B) 可以在一个函数中定义另一个函数C) main函数必须放在其他函数之前D) 所有被调用的函数一定要在调用之前进行定义8. C语言规定,在源程序中,main函数的位置C 。
A) 必须在最开始B) 必须在系统调用的库函数的后面C) 可以任意D) 必须在最后9. 下列选项中不是结构化程序基本结构的是B 。
A) 顺序结构B) 分支结构C) 选择结构D) 循环结构10. 下列四组选项中,均不是C语言关键字的是A 。
A) define IF type B) getc char printfC) include case scanf D) while go pow11. 下列四组选项中,均是不合法的标识符的是B 。
A) W P 0 do B) b-a goto intC) float la0 A D) -123 abc TEMP12. 下列可用于C语言标识符的一组是B 。
A) void, define, WORD B) a3 b3, 123, CarC) For, -abc, IF Case D) 2a, DO, sizeof13. 以面的C程序中,错误的是D 。
A) main() B) main(){ int x,y,z; { int x,y,z;x=0;y=x-1; x=0;y=x+1;z=x+y;} z=x+y;}C) main() D) main(){ int x,z; { int x,y,z;int y; x=0;y=x+1;x=0;y=x+1; z=x+y,}z=x+y;}14. C语言中的标识符只能由字母,数字和下划线三种字符组成,且第一个字符C 。
A) 必须为字母B) 必须为下划线C) 必须为字母或下划线D) 可以是字母,数字和下划线中任一字符15. 下面各选项中,均是C语言标识符的选项组是B 。
A) 33 we auto B) 23 me 3ewC) 43 3e else D) ER -DF 32二、填空题1. 国际上C语言常见的三个标准是:标准C 、ANSI C 和ISO C 。
2. C语言源程序的文件格式为*.c和*.h 。
3. 请描述C程序中main函数的作用:接受系统调用,开始程序的执行,直至程序结束。
三、程序编写题(请在本页背面作答)1. 编写一个C程序,输出以下信息*******************************Very Good!*******************************2. 编写程序,实现求整数10、20和35的平均值(提示:注意给出的是三个整数,求出的平均值不是整数)1No.: Name:第2讲C语言基本数据类型一、选择题1. 若x、i、j、k都是int型变量,则计算下面表达式后,x的值为C 。
x=(i=4,j=16,k=32)A) 4 B) 16 C) 32 D) 522. 下列四组选项中,均是合法转义字符的是A 。
A) ‘\"’ ‘\\’ ‘\n’ B) ‘\’ ‘\017’ ‘\"’C) ‘\018’ ‘\f’ ‘xab’ D) ‘\\0’ ‘\101’ ‘xlf’3. 下面正确的字符常量是D 。
A) "c" B) ‘\\’’ C) ‘’ D) ‘K’4. 以下叙述不正确的是D 。
A) 在C程序中,逗号运算符的优先级最低B) 在C程序中,MAX和max是两个不同的变量C) 若a和b类型相同,在计算了赋值表达式a=b后,b中的值将放入a中,b中的值不变D) 从键盘输入数据时,对于整型变量只能输入整型数值,对于实型变量只能输入实型数值5. 以下叙述正确的是C 。
A) 在C程序中,每行只能写一条语句B) 若a是实型变量,C程序中允许赋值a=10,因此实型变量中允许存放整型数C) 在C程序中,%是只能用于整数运算的运算符D) 在C程序中,无论是整数还是实数,都能被准确无误地表示6. 已知字母A的ASCII码为十进制数65,且c2为字符型,则执行语句c2=‘A’+‘6’-‘3’后,c2的值为A 。
A) D B) 68 C) 不确定的值D) C7. sizeof(float)是B 。
A) 一个双精度型表达式B) 一个整型表达式C) 一种函数表达式D) 一个不合法的表达式8. 设C语言中,一个int型数据在内存中占2个字节,则unsigned int 型数据的取值范围为C 。
A) 0~255 B) 0~32767C) 0~65535 D) 0~21474836479. 设有说明:char w; int x; float y; double z;则表达式w*x+z-y值的数据类型D 。
A) float B) char C) int D) double10. 设以下变量均为int类型,则值不等于7的表达式是C 。
A) (x=y=6,x+y,x+1) B) (x=y=6,x+y,y+1)C) (x=6,x+1,y=6,x+y) D) (y=6,y+1,x=y,x+1)11. C语言中的基本数据类型包括B 。
A) 整型、实型、逻辑型B) 整型、实型、字符型C) 整型、字符型、逻辑型D) 字符型、实型、逻辑型12. 若变量已正确定义并赋值,以下符合C语言语法的表达式是B 。
A) a:=b+1 B) a=b=c+2C) int 18.5%3 D) a=a+7=c+b13. C语言中运算对象必须是整型的运算符是A 。
A) %= B) / C) = D) <=14. 若变量a,i已正确定义,且i已正确赋值,合法的语句是B 。
A) a==1 B) ++i; C) a=a++=5; D) a=int(i);15. int a=7;float x=2.5,y=4.7;则表达式x+a%3*(int)(x+y)%2/4的值是A 。
A) 2.500000 B) 2.750000C) 3.500000 D) 0.00000016. 在16位C编译系统上,若定义long a;,则能给a赋40000的正确语句是D 。
A) a=20000+20000; B) a=4000*10;C) a=30000+10000; D) a=4000L*10L;17. 设有int x=11;则表达式(x++*1/3)的值是A 。
A) 3 B) 4 C) 11 D) 1218. 下列数据中,不合法的C语言实型数据的是C 。
A) 0.123 B) 123e3 C) 2.1e3.5 D) 789.019. 若变量a是int类型,并执行了语句:a=‘A’+1.6;,则正确的叙述是D 。
A) a的值是字符CB) 不允许字符型和浮点型相加C) a的值是浮点型D) a的值是字符‘A’的ASCII值加上120. 设变量n为float类型,m为int类型,则以下能实现将n中的数值保留小数点后两位,第三位进行四舍五入运算的表达式是B 。
A) n=(n*100+0.5)/100.0 B) m=n*100+0.5,n=m/100.0C) n=n*100+0.5/100.0 D) n=(n/100+0.5)*100.021. 下面四个选项中,均是不正确的8进制数或16进制数的选项是D 。
A) 016 0x8f 018 B) 0abc 017 0xaC) 010 -0x11 0x16 D) 0a12 7ff -12322. 以下选项中,与k=n++完全等价的表达式是A 。
A) k=n,n=n+1 B) n=n+1,k=n C) k=++n D) k+=n+123. 下面均是合法整型常量的选项是A 。
A) 160 -0xffff 011 B) -0xcdf 01a 0xeC) -01 986012 0668 D) -0x48a 2e5 0x24. 假定x和y为double型,则表达式x=2,y=x+3/2的值是D 。
A) 3.500000 B) 3 C) 2.000000 D) 3.00000025. 以下变量x,y,z均为double类型且已正确赋值,不能正确表示数学式子x÷y÷z的C语言表达式是A 。
A) x/y*z B) x*(1/(y*z) C) x/y*1/z D) x/y/z26. 已知int k,m=1;执行语句k=-m++;后,k的值是A 。
A) -1 B) 0 C) 1 D) 227. 已知int m;float k;正确的语句是D 。
A) (int k)%m B) int(k)%mC) int(k%m) D) (int)k%m28. 不能进行++和--运算的数据类型为D 。
A) 指针B) 整型C) 长整型D) 常量2No.: Name:29. putchar函数可以向终端输出一个D 。
A) 整型变量表达式B) 实型变量值C) 字符串D) 字符或字符型变量值30. printf函数中用到格式符%5s,其中数字5表示输出的字符串占用5列。
字符串长度大于5,则输出按方式B ;如果字符串长度小于5,则输出按方式C 。
A) 从左起输出该字符串,右补空格B) 按原字符长从左向右全部输出C) 右对齐输出该字符串,左补空格D) 输出错误信息31. 阅读以下程序,当输入数据的形式为:25,13,10ê,则正确的输出结果为D 。