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语言程序设计题库及答案,推荐文档

A.552 B.264 C.144 D.-264 30 . int a=3,b=2;printf(“%d,%d\n”,--a,b++);输出结果是(A )。
A.2,2 B.2,3 C.3,2 D.3,3
判断题(共 5 题,每题 2 分) 1 . 只能在循环体内和 switch 语句体内使用 break 语句。(对) 2 . 一个算法应该具备有穷性、确定性、输入、输出和有效性。(对) 3 . C 语言中,每个程序都必须要有一个且只有一个 main 函数。(对) 4 . 调用函数时,实参是一个数组名,则向函数传递的是数组的首地址。(对)
5 . 表达式 16/8*sqrt(4.0)/2 值的数据类型为 double 双精度实型。(对)
第二套试题
单选题(共 20 题,每题 4 分) 1 . 若有输入语句 scanf( %d%d%d,&x,&y,&z);则不能使 x 值为 5,y 值为 6,z 值为 7 的输入是___A___。
A.5,6 ,7
A.5,6 ,7
B.5 回车换行 6 7 C.5 6 7
D.5,6,7
12 . 若 i,j 已定义为 int 类型,则下程序段中内循环体的总的执行次数是( B )。 for (i=3;i>0;i--) for (j=0;j<=4;j++){...}
A.12
B.15
C.16
13 . 下列选项中,合法的 C 语言关键字是_D___。
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语言)习题以及答案

其身正,不令而行;其身不正,虽令不从。
——《论语》一、选择题1.下列属于C语言中合法的标识符的是( B )A 、ex-1B 、-cookC 、951aD 、if2.若 x 为 float 型变量,则以下语句(A )。
x=213.82631;printf("%-4.2f\n",x);A、输出为213.83B、输出格式描述符的域宽不够,不能输出C、输出为213.82D、输出为-213.823.一个C程序的执行是从(C )A、main函数开始,直到最后一个函数结束B、第一个函数开始,直到最后一个函数结束C、main函数开始,直到main函数结束D、第一条语句开始,直到最后一条语句结4.构成C语言源程序的基本单位是(B )A、过程B、函数C、子程序D、命令5.以下叙述不正确的是(D )A、注释说明被计算机编译系统忽略B、注释说明必须跟在“//”之后不能换行或者括在“/*”和“*/”之间且注释符必须配对使用C、注释符“/”和“*”之间不能有空格D、在C程序中,注释说明只能位于一条语句的后面6.在C程序中,main函数的位置( A)A、可以任意B、必须作为最后一个函数C、必须作为第一个函数D、必须放在它所调用的函数之后7. C语言属于(C )A、机器语言B、汇编语言C、高级语言D、低级语言云路鹏程九万里,雪窗萤火二十年。
——《王实甫》人之为学,不日进则日退,独学无友,则孤陋而难成;久处一方,则习染而不自觉。
——《顾炎武》8.使用“scanf("a=%d,b=%d",&a,&b)”,要使a,b的值均为25,正确的输入是(D )。
A、a=25 b=25(空格分开)B、25 25(空格分开)C、25,25D、a=25,b=259. 下列叙述中,不正确的是( C)A、分号是C语句的必要组成部分B、C语句的注释可以写在语句的后面C、主函数的名字不一定用main表示D、函数是C程序的基本单位10.C程序是由( B)构成的A、若干过程B、一个或多个函数C、若干子程序D、一个主程序与若干子程序11. 以下程序的输出结果是(B )。
北理工《C语言程序设计》在线作业含正确答案

B2,1,0
C1,2,1
D2,1,1
18、C语言规定,调用一个函数时,实参变量和形参变量之间的数据传递方式是( )。
A地址传递
B值传递
C由实参传给形参,并由形参传回给实参
D由用户指定传递方式
19、在C语言的函数定义过程中,如果函数finA调用了函数funB,函数funB又调用了函数funA,则( )。
A、6385
B69825
C63825
D693825
6、已知:struct{int i; char c; float a; }test; 则sizeof(test)的值是( )。
A4
B5
C6
D7
7
2分
已知“int a=4,b=5,c;”,则执行表达式“c=a=a>b”后变量a的值为( )。
A1
B0
C4
C数据结构系统化
D控制流程结构化
4、C编译系统提供了对C程序的编辑、编译、连接和运行环境,以下可以不在该环境下进行的环节是( )。
A编辑和编译
B编译和连接
C连接和运行
D编辑和运行
5、以下程序的输出是( )。main(){char a[2][5]={“6937”,”8254”};int i,j,s=0;for(i=0;i<2;i++)for(j=0;a[i][j]>'0'&&a[i][j]<='9';j+=2)s=10*s+a[i][j]-‘0’;printf(“s=%d ”,s);}
Dscanf("%d%d%d",&a,&b,&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的矩阵的乘积并输出结果。
C语言程序设计-国家开放大学电大学习网形考作业题目答案

C语言程序设计一、单选题1.在每个C语言程序中都必须包含有这样一个函数,该函数的函数名为()。
A.mainB.MAIND.function正确答案: A2.C语言源程序文件的缺省扩展名为()。
A.cppB. exeC. objD.c正确答案: D3.由C语言目标文件连接而成的可执行文件的缺省扩展名为()。
A.cppB.exeC.objD. c正确答案: B4.程序运行中需要从键盘上输入多于一个数据时,各数据之间应使用的分隔符为()。
A.空格或逗号B.逗号或回车C.逗号或分号D.空格或回车正确答案: D5.每个C语言程序文件的编译错误被分为()。
A.1类B.2类C.3类D.4类正确答案: B6.不符合C语言规定的复合语句是()。
A.{}B.{;}C.{x=0;}D.{y=10}正确答案: D7.C语言程序中的基本功能模块为()。
A.表达式B.标识符C.语句D.函数正确答案: D8.在一个函数定义中,函数头包括的3个部分依次为函数类型、函数名和()。
A. 表达式B.语句C.参数表D.函数体正确答案: C9.在一个程序文件中,若要使用#include命令包含一个用户定义的头文件,则此头文件所使用的起止定界符为一对()。
A.尖括号B.双引号C.单引号D.花括号正确答案: B10.在C语言程序中,多行注释语句使用的开始标记符为()。
A.//B./*C.*/D.**正确答案: B11.在printf()函数调用的格式字符串中,若使用格式符为“%c”,则对应输出的数据类型为()。
A.charB.intC.floatD.double正确答案: A12.在printf()函数调用的格式字符串中,若使用格式符为“%5d”,则规定对应输出的数据占用的字符位置个数为()。
A.5B.4C.3D.6正确答案: A13.转义字符'\\'表示的字符是()。
A.单引号B.双引号C.反斜线D.问号正确答案: C14.枚举类型中的每个枚举常量的值都是一个()。
国家开放大学电大《C语言程序设计》网络课形考任务3作业及答案

国家开放大学电大《C语言程序设计》网络课形考任务3作业及答案形考任务3一、选择题(共30分,每小题2分)题目1在下面的函数声明语句中,存在着语法错误的是( )。
选择一项:c.AA(int a; int b)题目2在下面的保留字中,不能作为函数的返回值类型的是( )。
选择一项:c. enum题目3假定p是一个指向float型数据的指针,则p+1所指数据的地址比p所指数据的地址增加的字节数为( )。
选择一项:c. 4题目4假定a为一个数组名,在下面的表达式中,存在语法错误的是( )。
选择一项:b.*a++题目5用calloc函数创建具有10个整型元素的一维数组的正确语句是( )。
选择一项:c.int*p=calloc(10,4);题目6假定变量m定义为“int m=7;”,则下面正确的语句为( )。
选择一项:b.int*p=&m;题目7假定k是一个double类型的变量,则定义变量p的正确语句为( )。
选择一项:d.char题目8选择一项:d.x=*pa+3;题目9假定有语句为“int b[10];int *pb;”,则下面不正确的赋值语句为( )。
选择一项:d.pb=b[5];题目10已知“int *p=malloc(100);”,要释放p所指向的动态内存,正确的语句为( )。
选择一项:a.free(p);题目11在程序的一个文件中定义的函数,若要在另一个文件中调用,则必须在这另一个文件中给出该函数的( )。
选择一项:a. 原型语句题目12假定一个函数定义为“static int f1(int x,int y){return x+y;}”,该函数名称为()。
选择一项:c. f1题目13假定一个函数的原型语句为“int ff(int*x);”,一个整型数组为a[10],则下面函数调用表达式不正确的是( )。
选择一项:b.ff(a[0])题目14假定一个函数的数组参数说明为char a[],与之等价的指针参数说明为( ) 。
C语言程序设计习题(含答案)

一、名词解释(每小题4分,共20分)1. 变量2. 赋值运算3. int4. 数组5. 函数二、单选题(每小题2分,共20分)1. 以下运算符中,表示取余数运算的是( )A. %B. /C. !=D. <=2. C语言中,表示“不等于”、“不相等”的运算符是( )A. ≠B. !=C. < >D. =/=3. C语言中,printf函数中的格式字符%d用来( )A. 输出一个字符串B. 输出单个字符C. 输出十进制整数D. 输出双精度浮点数4. C语言中,要求接受用户从键盘输入的一个英文字符到char型变量ch中,那么,该语句的正确写法是( )A. scanf("%z",ch);B. scanf("%c",ch);C. scanf("%z",&ch);D. scanf("%c",&ch);5. 定义一个用来存放双精度浮点数且名为x的变量的正确语句是( )A. double x;B. float x;C. Double x;D. Float x;6. 判断整数型变量score的取值是否在区间[60,100]的正确写法是( )A. if (score>=60 and score<=100)B. if (score>=60 && score<=100)C. if (score>=60 & score<=100)D. if (60<= score <=100)7. 定义最多能存放30个整数且名为scores的数组的正确语句是( )A. INT scores[30];B. int [30] scores;C. int scores[30];D. INT [30] scores;8. 利用string.h中库函数求字符串s的长度的表达式正确写法是( )A. len(s)B. length(s)C. strLen(s)D. strlen(s)9.利用string.h中库函数判断字符串s1大于等于字符串s2的正确写法是( )A. if(strcmp(s1,s2)>=0)B. if (s1>=s2)C. if(strcmp(s1,s2)≥0)D. if (s1≥s2)10. 以下能输出数字0,1,2,3,4,5,6,7,8,9且每行输出一个数字的正确语句是( )A. for( i=0; i<10; i++ ) { printf("%d",i); }B. for( i=0; i<10; i++ ) { printf("%d\n",i); }C. for( i=0; i<10; i++ ) { printf("%d\n",i+1); }D. for( i=0; i<10; i-- ) { printf("%d\n",i); }三、判断题(每小题2分,共10分)1. C语言中,int可以作为变量名,例如语句:char int;可以定义名为int 的字符型变量。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
《C 语言程序设计》课程作业适用层次:专升本 培养类型:理工科专业专业班级: 姓名: 学号:作业要求:题目可打印,答案要求手写,考试时交作业。
第1次:1.编写程序,分别计算1到100之间的奇数之和及偶数之和,并输出。
2.输入三角形的三条边a 、b 、c ,如果能构成一个三角形,则计算并输出三角形的周长和面积(结果保留两位小数);否则输出“无效的边长!”。
三角形面积计算公式为: s=))()((c x b x a x x ---,其中,x=(a+b+c)/2。
3.输入一个整数,求它的各位数字之和。
例如,123的各位数字之和为6,-63的各位数字之和为9。
4.使用格里高利公式求π的近似值,精确到最后一项的绝对值小于10-6。
+-+-=71513114π……5.中国古代数学史上著名的“百鸡问题”:鸡翁一,值钱五;鸡母一,值钱三,鸡雏三,值钱一。
百钱买百鸡,问翁、母、雏各几何?6.编写程序,键盘输入正整数n (0<n<10)的值,求s=1!+3!+5!+…+n !的值并输出。
第2次:1.编写程序,用冒泡排序对10个整数进行降序排列。
2.从键盘输入10个学生的高考总成绩,输出最高分。
3.输入20个学生的成绩,要求统计并输出优秀(大于85)、及格(60~84)和不及格(小于60)的学生人数。
4.求一个4*4矩阵主对角线元素之和与副对角线元素之和的差。
5.输入一个以回车键结束的字符串(少于80个字符),删除其中除英文字母以外的其它字符。
第3次:1.输入x ,计算并输出下列分段函数f(x)的值。
可以调用数学库函数:平方根函数sqrt(),绝对值函数fabs()。
| 2x+5| x<0f(x)= (x+1)1/2 0<=x<23x+1 x>= 22. 编写一个函数prime(int n),判断一个整数是否是素数,若是素数,函数值返回1,否则返回0。
利用该函数找出100-200之间的所有素数。
素数是只能被1和自身整除的正整数,2是最小的素数。
3.写一函数int strlength(char *s)求一个字符串的长度。
主函数中输入一个字符串,调用函数strlength 求其长度并输出。
11:编程计算1到100之间的奇数之和及偶数之和。
#include <stdio.h>main(){ int even_sum,odd_sum,j,i;even_sum = odd_sum =0 ;for(i=0;i<=100;i+=2){ even_sum +=i;_j=i+1___;odd_sum +=j;}printf("sum of evens is %d\n", even_sum);printf("sum of odds is %d\n", odd_sum -101);#include <stdio.h>#include <math.h>main(){ float a,b,c,s,area;printf(“Input a,b,c:”);scanf(“%f%f%f”,&a,&b,&c);if(a+b>c&&a+c>b&&b+c>a){s=(a+b+c)/2;area=sqrt(s*(s-a)*(s-b)*(s-c));printf(“area=%.2f\n”,area);}elseprintf(“无效的边长!”);}13:输入一个整数,求它的各位数字之和及位数。
例如,34的各位数字之和是7,位数是2;-123的各位数字之和是6,位数是3。
#include <stdio.h>main(){int x,m,n=0,s=0;printf(" x= ");scanf("%d",&x);if(x<0)x=-x;do{m=x%10; /* 求出该数的个位数*/s=s+m;n++;x=x/10;}while(x!=0);printf(" 位数是:%d\n",n);printf(" 各位数字之和是:%d\n",s);}14:使用格里高利公式求π的近似值,精确到最后一项的绝对值小于10-6。
+-+-=71513114π……#include <stdio.h>#include <math.h>main( ){ int s;float n, t, pi;t=1; pi=0; n=1.0; s=1;while((fabs(t)) > = 1e-6){ pi = pi+t;n = n+2;s = -s;t = s/n;}pi=pi*4;printf(“pi =%10.6f\ n”, pi );}15:中国古代数学史上著名的“百鸡问题”:鸡翁一,值钱五;鸡母一,值钱三,鸡雏三,值钱一。
百钱买百鸡,问翁、母、雏各几何?#include <stdio.h>main(){int cock,hen,chicken;for(cock =0; cock <=20; cock ++)for(hen =0; hen <=33; hen ++){ chicken =100- cock - hen;if((5* cock +3* hen + chicken /3)==100&&( chicken %3==0))printf("%5d%5d%5d\n", cock, hen, chicken);}}16:编写程序,键盘输入正整数n (0<n<10)的值,求s=1!+3!+5!+…+n !的值并输出。
#include<stdio.h>double fact(int n){double i,r=1;for(i=2;i<=n;i++)r *= i;return r;}main(){int i,n;double sum=0.0;scanf("%d",&n);for(i=1;i<=n;i++){sum += fact(2*i-1);}printf("sum=%.0lf\n",sum);}21. 编程,用冒泡排序对10个整数进行降序排列。
#include <stdio.h>main( ){ int a[10]; int i, j , t;/*输入10个整数到数组a中*/printf ("Input 10 numbers:\n");for(i=0;i<10;i++)scanf("%d",&a[i]);printf ("\n");/*用冒泡排序法对数组a中的10个数进行降序排序*/for(i=1; i<10; i++)for(j=0; j<=9-i; j++) /* a[0]到a[9-i]范围内的数进行一趟冒泡排序 */ if(a[j]<a[j+1]) {t=a[j];a[j]=a[j+1];a[j+1]=t;}/*依次输出排序后的10个整数*/printf ( "The sorted numbers are:\n");for(i=0;i<10;i++)printf("%d _ _",a[i]);}22.已知10个学生的高考总成绩,输出最高分。
#include <stdio.h>main( ){float score[10], maxscore;int i;/*输入10个学生的高考总成绩到数组score中*/printf ("Input 10 scores:\n");for(i=0; i<10; i++)scanf("%f", &score[i]);/*变量maxscore赋值为第一个学生的成绩*/maxscore=score[0];/*求最高分*/for(i=1; i<10; i++)if( score[i]>maxscore) maxscore=score[i];/*输出最高分*/printf("maxscore=%6.1f\n",maxscore);}23.输入20个学生的成绩,要求统计并输出优秀(大于等于85)、及格(60~84)和不及格(小于60)的学生人数。
#include <stdio.h>main( ){int mark[20], g, p, f,i;g=p=f=0;printf("Enter scores:\n");for(i=0; i<20; i++)scanf ("%d", &mark[i]);/*统计优秀、及格和不及格的学生人数*/for(i=0; i<20; i++)if(mark[i] >= 85) g++;else if (mark[i] >= 60) p++;else f++;/*输出统计结果*/printf("优秀人数:%d\n", g);printf("及格人数:%d\n", p);printf("不及格人数:%d\n", f);}24.求一个4*4矩阵主对角线元素之和与副对角线元素之和的差#include<stdio.h>void main(){int i,j,sum1=0,sum2=0, a[4][4];printf("Input a 4*4 matrix:\n");for(i=0;i<4;i++)for(j=0;j<4;j++)scanf("%d", &a[i][j]);for(i=0;i<4;i++){sum1+=a[i][i];sum2+=a[i][3-i] }printf("差=%d\n", sum1- sum2);}25.输入一个以回车键结束的字符串(少于80个字符),删除其中除英文字母和数字字符以外的其它字符。
#include <stdio.h>main(){char str[80];int i,k=0;printf("Input a string:\n");gets(str);/*删除字符串中除英文字母和数字字符以外的字符*/for(i=0; str[i]!='\0'; i++)if(str[i]>='a'&&str[i]<='z'||str[i]>='A'&&str[i]<='Z'||str[i]>='0'&&str[i]<='9'){str[k]=str[i]; /* 保留字符串中的英文字母和数字字符 */k++;}str[k]='\0';printf("Output new string:\n");puts(str);}31. 输入x,计算并输出下列分段函数f(x)的值。