c语言程序设计答案 甘勇(C语言程序设计试题 求标准答案 都是多选)

本文目录
- C语言程序设计试题 求标准答案 都是多选
- 智慧树知到《C语言程序设计(青岛职业技术学院)》2022章节测试答案
- C语言程序设计2015A卷-
- C语言程序设计(201803)测试求大佬帮忙!
- c语言程序设计第三版课后习题答案
- C语言程序设计(第4章函数)3
- C语言程序设计学生成绩管理系统
- C语言程序设计
C语言程序设计试题 求标准答案 都是多选
1、答案:A
(单引号括起来的都是字符,而且一对单引号最多对应一个字符,\反斜杠是转义字符的开始,\72是ASCII码对应的字母H。也就是把H这个字母存到了变量char a中。就一个字符H。)
2、ACDE
解析:
int a=3,b=4,c=5;,
A、a》b
B、a<=b
C、(a||b)>c
D、a<=(b||c)
E、!((a<b)&&!c||b)
优先级由大到小:() ! && ||
A选项,3》4错误,逻辑值0。
B选项,3《=4正确,逻辑值1。
C选项,(3||4)》5,(3||4)"或"逻辑运算符两边只要有一个非0的整个值就是1,1》5错,逻辑值0。
D选项,3《=(4||5)错误,逻辑值0。
E选项,!((3《4)&&!5||4),先(3《4)逻辑值1,!5逻辑值0,1&&0是0,0||4是1,!1是0,所以逻辑值0。
3、AC。
解析:A可以,B答案b不能被赋值(自左向右,计算||左侧就已经是1了右边就不用再计算了整个表达式无论右边如何整个逻辑值必定是1,计算机也就不会计算右边了)C可以(因为&&两边都必须计算才能得出最后的逻辑值答案),D不可以a不能被赋值(&&左边就一个a,构不成赋值,可能存放一个随机值,右边可以被赋值)。
4、ABCD。
外部函数几乎可以被所有函数调用。只要开头#include” "引入。
智慧树知到《C语言程序设计(青岛职业技术学院)》2022章节测试答案
智慧树知到《C语言程序设计(青岛职业技术学院)》2022章节测试答案
第一章测试
1、C语言是一种()
A、机器语言
B、汇编语言
C、高级语言
D、低级语言
正确答案:C
2、下列各项中,不是C语言的特点是()。
A、语言简洁、紧凑,使用方便
B、数据类型丰富,可移植性好
C、能实现汇编语言的大部分功能
D、有较强的网络操作功能
正确答案:D
3、下列叙述错误的是()。
A、C程序中的每条语句都用一个分号作为结束符
B、C程序中的每条命令都用一个分号作为结束符
C、C程序中的变量必须先定义,后使用
D、C语言以小写字母作为基本书写形式,并且C语言要区分字母的大小写
正确答案:B
4、一个C程序的执行是从()。
A、本程序的main函数开始,到main函数结束
B、本程序文件的第一个函数开始,到本程序文件的最后一个函数结束
C、本程序文件的第一个函数开始,到本程序main函数结束
D、本程序的main函数开始,到本程序文件的最后一个函数结束
正确答案:A
5、以下叙述不正确的是()。
A、一个C源程序必须包含一个main函数
B、一个C源程序可由一个或多个函数组成
C、C程序的基本组成单位是函数
D、在C程序中,注释说明只能位于一条语句的后面
正确答案:D
第二章测试
1、已知定义整形变量a,b,c的值分别是2、3、4,运算表达式a*=16+(b++) - (++c)以后,a值为()
A、31
B、30
C、29
D、28
正确答案:D
2、在C语言中,要求参加运算的数必须是整数的运算符是()。
A、++
B、
C、!
D、%
正确答案:D
3、合法的c标识符是()。
A、5dm
B、a》b
C、h1
D、$s
正确答案:C
4、执行下列程序后,显示的结果是() main () { int a; printf (“%d ”,(a=3*5,a*4, a+5));}
A、65
B、20
C、15
D、10
正确答案:B
5、执行下列程序中的输出语句后,x的值是()。 main() {int x ; printf(“%d ”,(x=4*5,x*2,x+20));}
A、20
B、40
C、60
D、80
正确答案:A
6、判断:表达式1/4+2.75的值是3。
正确答案:X
7、下列转义字符不正确的是()。
A、’/’
B、’’
C、’+’
D、’-’
正确答案:B
8、对于int n=3;执行n+=n-=n*n;后n的值是9。
正确答案:X
9、在C语言中8.9e1.2是不正确的实型常量。
正确答案:√
10、对任一变量一旦被指定为某一确定类型后,该变量在程序运行时所占存储空间的多少和所能参加的运算类型便已确定了。
C语言程序设计2015A卷-
一、判断题(每小题1分,共15分)
1.标准C中,只有数值型数据才能进行4则混合运算。
2.标准C中,_a是合法的自定义标识符。
3.有定义:float f;表达式f+=(int)3.6%2”不符合C语言语法。
4.标准C中,逻辑运算的结果只有是1表示满足条件,而结果是0表示不满足条件。
6.以下运算符排列顺序满足按照优先级从高到低的排列:‘&&’、‘!’、‘==’、‘-’。
7.语句for(;;);是非法的。
8.在C语言程序中可以由多个源文件构成,每个源文件都可以有自己的main()函数。
9.while和do-while的主要区别是后者至少无条件执行一次。
10.数组名代表数组的首地址是常量,所以将实参数组名表示地址传给形参数组名是错误的。
11.当函数没有返回值类型时,表示函数类型为void。
12.C语言中,指针变量作函数参数时,它们不是采取单向值传递的方式。
13.一个函数中只允许有一条return语句。
14.在C语言中,如果没有说明变量的存储类型是auto类型的。
15.由于指针中所存放的地址都是整数,所以整型指针和浮点型指针可以相互赋值。
二、填空题(每空1分,共15分)
1. 若a=4;b=5,c=6;则表达式c==(b=-a); 中c的值是 (1) 。
2. 计算表达式的值:
4&&-4的值: (2) ;
设int a=3,b=4,c=5,则表达式a||b+c&&b==c的值: (3) ;
设x=2.5, a=7, y=4.7,则表达式x+a%3*(int)(x+y)%2/4的值: (4) ;
设a=12,则表达式a*=a/5的值: (5) ;
3. 若int x = 4,y = 6,z = 0;有循环while(x = y) {z ++;y--;}
则循环语句执行完后,z值为 (6) 。
4. 变量的指针就是指该变量的 (7) 。
5. 若有定义int (*p),则标识符p是 (9) ;
6. 已有定义:char *p+2));printf(“%c”,*(*(p+1)+1));
的输出结果分别为: (10) 、 (11) 、 (12) 。
7. 已有定义: int x=65; 若格式化输出结果为“A, 65”,则对应的格式化输出语句为printf(“ (13) , (14) ”, x, x)。
8. 已定义:int a= (15) 。
三、简答题(每题4分,共12分)
1、简述选择语句if和else语句对与switch语句的区别。
2、简述在循环语句中,break和continue的区别。
3、若int a,*p=a;简述*p++和(*p)++的区别。
四、下列各程序中每个程序各有2个错误,指出错误语句,写出对应正确语句(每小题4分,共16分)
五、程序填空题:下列程序中缺少若干条语句,在对应的下划线上填上合适的语句,每一个下划线只填一条语句(每小题6分,共24分)
六、阅读下列程序,写出运行结果(第一小题4分,第二小题6分,共10分)
七、编程题(8分)
编译程序,其功能是比较字符串的大小( 不允许 用系统提供的字符串比较函数strcmp)。要求是:
(1) 通过主函数调用一个函数strcompare来实现。
(2) 要求函数strcompare实现两个字符的比较:如第一个字符小于第二个字符则返回一个负值;如两个字符相等则返回0值;如第一个字符大于第二个字符则返回一个正值。
(3) 并输出两个字符串中相同部分的子串。
《C语言程序设计基础》试卷参考答案
一、判断题(每小题1分,共15分)
1~5 ; 6~10 ; 11~15
二、填空题(每空1分,共15分)
(1) 6 (2) 1 (3) 1 (4) 2.5 (5) 24 (6) 6
(7)地址 (8) 行指针,指向有四个元素的一维数组
(9)指针数组名,该数组有四个元素,每个元素都是指针
(10)Russia (11)i (12)h (13) %c (14) %d (15)7
三、简答题(每题4分,共12分)
1、if总是判断其后面的表达式的值是否为非零值,如是非零值则执行其后面的语句或由{}括起来的复合语句,否则执行else后面的语句。而switch语句则根据其后面表达式的可数值来判断,执行switch语句体内与其中的一个case:常量值相等语句后面的语句。执行break语句后,跳出switch语句体。
2、break是终止整个循环过程;continue是终止本次循环。
3、*p++首先取a的值自增1,但p保持不变。
四、下列各程序中每个程序各有2个错误,指出错误语句,写出对应正确语句(每小题4 分,共16分)
1、 (1)缺#include ; (2)scanf(“%f”,a); 改为 scanf(“%f”,&a);
2、 (1)缺sum=0; (2)for(i=1; i《=3; i++) 改为for(i=0;i《3;i++)
3、 (1)p1=p2 改为 *p1=*p2 (2)swap(&a, *p) 改为swap(&a, p)
4、 (1)在if(m《0)语句后添加else if(m==0) a=1; (2) 添加 return(a);
五、程序填空题:下列程序中缺少若干条语句,在对应的下划线上填上合适的语句,每一个下划线只填一条语句(每小题6分,共24分)
1、 (1)x=0; (2)if(n==x) (3)s++;或s=s+1;
2、 (4)#!=0
3、 (7)n-i-1 (8)a=temp
4、 (10)count=0; (11)n%10 (12)n》0或n!=0或n
六、阅读下列程序,写出运行结果(第一小题4分,第二小题6分,共10分)
1、 #*#*#*
2、 main i=1 j=2 k=2
sub i=1 j=2 k=1 x=2
sub i=1 j=2 k=1 x=3
七、编程题(8分)
#include
main()
{
int i,j, flag=0;
char str1;
gets(str1);
gets(str2);
i=0;
do{
flag=strcompare(str1);
i++;
}while(str1!=’’ &&flag=0);
if(flag《0)printf(“%s小于%s ”,str1,str2);
else if(flag==0) printf(“%s 等于%s ”,str1,str2);
else printf(“%s大于%s ”,str1,str2);
printf(“两个字符串中相同的字串为:”);
j=0;
i--; 后3句可用str1=’’; printf(“%s”,str1);代替//用str2也可以。
while(j《i){printf(“%c”,str1);j++;}》
}
int strcompare(char c1,char c2)
{
int v;
v=c1-c2;
return v;
}
C语言程序设计(201803)测试求大佬帮忙!
选D
选C;"my name"算上空格一共7个字符,加上结尾的’\0’为8个字符,所以如果m前没有空格,那么答案为C
选C;p指向a=8
选C
选D;A错误,字符串应为char型;B错误,数组长度不够;C错误,没有vhst类型;D正确,可看作字符数组,{}内的数值可转为相应的ASCII字符
选C;字符数组即字符串不能直接通过"="赋值,要使用strcpy函数
选C;函数实参可以是常量、变量或表达式,该题中逗号表达式(exp2,exp3)返回exp3,(exp4,exp5,exp6)返回exp6,因此一共3个实参
选C;A错误,函数调用时不用指明其参数类型;B错误,fun函数没有返回值,不能赋给k;C正确;D错误,函数调用时不用指明其返回类型
选A;n++表示先返回n的值,再对n进行自增操作,即先令k=n,再执行n=n+1
选C;if-else不是循环结构
选D;aa表示数组首地址,即&aa
选B
选B;a=5
选C;A错误,除非函数定义在调用语句之后的位置,才需要提前声明;B错误,函数返回值不一定要显示给出,没有返回值类型的默认为整型;C正确;D错误,在类的定义中,当构造函数和析构函数不需要完成操作时可用空函数来表示,但它们又是有意义的
选B;scanf需指明读入变量的地址,字符串名称c就表示字符串的地址,也即字符数组首元素的地址,不用再加取地址符&
选A
选D;同第6题
码字不易,望采纳~
c语言程序设计第三版课后习题答案
习 题 1
1.1 填空题
1.函数
2.主函数main();主函数main()
3.主函数main()
4.函数首部;函数体
5.{;}
6.顺序结构;选择结构;循环结构
7..c;.obj;.exe
1.2 思考题
1.答:结构化程序设计是指,为使程序具有一个合理的结构以保证程序正确性而规定的一套如何进行程序设计的原则。顺序结构,选择结构,循环结构
2.答:算法是对具体问题求解步骤的一
种描述。计算机算法的表达工具通常采用以下几种方法:①用自然语言表示算法;②用流程图表示算法;③用伪代码表示算法;④用程序设计语言表示算法。
3.略
4.略
5.略
1.3 编程题
1.答:
#include "stdio.h"
main()
{ float a=10, b=20, h=5, s;
s=(a+b)*h/2;
printf("s=%f " , s );
}
C语言程序设计(第4章函数)3
4.3 函数的调用与参数
如果一个函数要使用参数,它就必须定义接受参数值的变量。
4.3.1 形式参数与实际参数
函数定义时填入的参数我们称之为形式参数,简称形参,它们同函数内部的局部变量作用相同。形参的定义是在函数名之后和函数开始的花括号之前。
调用时填入的参数,我们称之为实际参数,简称实参。
必须确认所定义的形参与调用函数的实际参数类型一致,同时还要保证在调用时形参与实参的个数出现的次序也要一一对应。如果不一致,将产生意料不到的结果。与许多其它高级语言不同,(是健壮的,它总要做一些甚至你不希望的事情,几乎没有运行时错误检查,完全没有范围检测。作为程序员,必须小心行事以保证不发生错误,安全运行。
4.3.2 赋值调用与引用调用
一般说来,有两种方法可以把参数传递给函数。第一种叫做“赋值调用”(call by value),这种方法是把参数的值复制到函数的形式参数中。这样,函数中的形式参数的任何变化不会影响到调用时所使用的变量。
把参数传递给函数的第二种方法是“引用调用”(call by reference)。这种方法是把参数的地址复制给形式参数,在函数中,这个地址用来访问调用中所使用的实际参数。这意味着,形式参数的变化会影响调用时所使用的那个变量(详细内容请参见后续章节)。
除少数情况外,C语言使用赋值调用来传递参数。这意味着,一般不能改变调用时所用变量的值。请看例4 - 9。
[例4 - 9]
main ( )
{
int t =10;
printf("%d %d ",sqr(t),t); /* sqr(t)是函数调用,t是实参* /
}
int sqr(x) /* 函数定义,x是形式参数* /
int x;
{
x = x * x;
return (x);
}
在这个例子里,传递给函数sqr( )的参数值是复制给形式参数x的,当赋值语句x = x * x执行时,仅修改局部变量x。用于调用sqr( )的变量t,仍然保持着值10。
执行程序:
100 10
切记,传给函数的只是参数值的复制品。所有发生在函数内部的变化均无法影响调用时使用的变量。
4.4 递归
C语言函数可以自我调用。如果函数内部一个语句调用了函数自己,则称这个函数是“递归”。递归是以自身定义的过程。也可称为“循环定义”。
递归的例子很多。例如定义整数的递归方法是用数字1,2,3,4,5,6,7,8,9加上或减去一个整数。例如,数字1 5是7 + 8;数字2 1是9 + 1 2; 数字1 2是9 + 3。
一种可递归的计算机语言,它的函数能够自己调用自己。一个简单的例子就是计算整数阶乘的函数factor( )数N的阶乘是1到N之间所有数字的乘积。例如3的阶乘是1×2×3,即是6。
factor( )和其等效函数fact( )如例4 - 1 0所示。
factor(n) /* 递归调用方法* /
int n;
{
int answer;
if (n==1)
return (1);
answer=factor(n-1) * n; /* 函数自身调用* /
return(answer);
}
fact(n) /* 非递归方法* /
int n;
{
int t,a n s w e r;
answer = 1;
for (t=1; t 《 = n; t ++)
answer = answer * t;
return(answer);
}
非递归函数fact( )的执行应该是易于理解的。它应用一个从1开始到指定数值结束的循环。
在循环中,用“变化”的乘积依次去乘每个数。
factor( )的递归执行比fact( )稍复杂。当用参数1调用factor( )时,函数返回1;除此之外的其它值调用将返回factor(n-1) * n这个乘积。为了求出这个表达式的值,用( n - 1)调用factor( )一直到n等于1,调用开始返回。
计算2的阶乘时对factor( )的首次调用引起了以参数1对factor( )的第二次调用。这次调用返回1,然后被2乘(n的初始值),答案是2(把printf( )语句插入到factor ( )中,察看各级调用及其中间答案,是很有趣的)。
C语言程序设计学生成绩管理系统
#include "stdio.h"
/*定义学生结构体*/
struct Student
{
char ID;
char Name;
float Mark1;
float Mark2;
float Mark3;
float Average;
};
/*声明学生数组及学生数量*/
struct Student students;
int num=0;
/*求平均值*/
float Avg(struct Student stu)
{
return (stu.Mark1+stu.Mark2+stu.Mark3)/3;
}
/*通过学号返回数组下标*/
int Student_SearchByIndex(char id)
{
int i;
for (i=0;i《num;i++)
{
if (strcmp(students.ID,id)==0)
{
return i;
}
}
return -1;
}
/*通过姓名返回数组下标*/
int Student_SearchByName(char name)
{
int i;
for (i=0;i《num;i++)
{
if (strcmp(students.Name,name)==0)
{
return i;
}
}
return -1;
}
/*显示单条学生记录*/
void Student_DisplaySingle(int index)
{
printf("%10s%10s%8s%8s%8s%10s\n","学号","姓名","成绩","成绩","成绩","平均成绩");
printf("-------------------------------------------------------------\n");
printf("%10s%10s%8.2f%8.2f%8.2f%10.2f\n",students.Name,
students.Average);
}
/*插入学生信息*/
void Student_Insert()
{
while(1)
{
printf("请输入学号:");
scanf("%s",&students.ID);
getchar();
printf("请输入姓名:");
scanf("%s",&students.Name);
getchar();
printf("请输入成绩:");
scanf("%f",&students.Mark1);
getchar();
printf("请输入成绩:");
scanf("%f",&students.Mark2);
getchar();
printf("请输入成绩:");
scanf("%f",&students.Mark3);
getchar();
students);
num++;
printf("是否继续?(y/n)");
if (getchar()==’n’)
{
break;
}
}
}
/*修改学生信息*/
void Student_Modify()
{
float mark1,mark2,mark3;
while(1)
{
char id;
int index;
printf("请输入要修改的学生的学号:");
scanf("%s",&id);
getchar();
index=Student_SearchByIndex(id);
if (index==-1)
{
printf("学生不存在!\n");
}
else
{
printf("你要修改的学生信息为:\n");
Student_DisplaySingle(index);
printf("-- 请输入新值--\n");
printf("请输入学号:");
scanf("%s",&students.ID);
getchar();
printf("请输入姓名:");
scanf("%s",&students.Name);
getchar();
printf("请输入成绩:");
scanf("%f",&students.Mark1);
getchar();
printf("请输入成绩:");
scanf("%f",&students.Mark2);
getchar();
printf("请输入成绩:");
scanf("%f",&students.Mark3);
getchar();
students);
}
printf("是否继续?(y/n)");
if (getchar()==’n’)
{
break;
}
}
}
/*删除学生信息*/
void Student_Delete()
{
int i;
while(1)
{
char id;
int index;
printf("请输入要删除的学生的学号:");
scanf("%s",&id);
getchar();
index=Student_SearchByIndex(id);
if (index==-1)
{
printf("学生不存在!\n");
}
else
{
printf("你要删除的学生信息为:\n");
Student_DisplaySingle(index);
printf("是否真的要删除?(y/n)");
if (getchar()==’y’)
{
for (i=index;i《num-1;i++)
{
students;
}
num--;
}
getchar();
}
printf("是否继续?(y/n)");
if (getchar()==’n’)
{
break;
}
}
}
/*按姓名查询*/
void Student_Select()
{
while(1)
{
char name;
int index;
printf("请输入要查询的学生的姓名:");
scanf("%s",&name);
getchar();
index=Student_SearchByName(name);
if (index==-1)
{
printf("学生不存在!\n");
}
else
{
printf("你要查询的学生信息为:\n");
Student_DisplaySingle(index);
}
printf("是否继续?(y/n)");
if (getchar()==’n’)
{
break;
}
}
}
/*按平均值排序*/
void Student_SortByAverage()
{
int i,j;
struct Student tmp;
for (i=0;i《num;i++)
{
for (j=1;j《num-i;j++)
{
if (students.Average)
{
tmp=students;
students;
students=tmp;
}
}
}
}
/*显示学生信息*/
void Student_Display()
{
int i;
printf("%10s%10s%8s%8s%8s%10s\n","学号","姓名","成绩","成绩","成绩","平均成绩");
printf("-------------------------------------------------------------\n");
for (i=0;i《num;i++)
{
printf("%10s%10s%8.2f%8.2f%8.2f%10.2f\n",students.Name,
students.Average);
}
}
/*将学生信息从文件读出*/
void IO_ReadInfo()
{
FILE *fp;
int i;
if ((fp=fopen("Database.txt","rb"))==NULL)
{
printf("不能打开文件!\n");
return;
}
if (fread(#,sizeof(int),1,fp)!=1)
{
num=-1;
}
else
{
for(i=0;i《num;i++)
{
fread(&students,sizeof(struct Student),1,fp);
}
}
fclose(fp);
}
/*将学生信息写入文件*/
void IO_WriteInfo()
{
FILE *fp;
int i;
if ((fp=fopen("Database.txt","wb"))==NULL)
{
printf("不能打开文件!\n");
return;
}
if (fwrite(#,sizeof(int),1,fp)!=1)
{
printf("写入文件错误!\n");
}
for (i=0;i《num;i++)
{
if (fwrite(&students,sizeof(struct Student),1,fp)!=1)
{
printf("写入文件错误!\n");
}
}
fclose(fp);
}
/*主程序*/
main()
{
int choice;
IO_ReadInfo();
while(1)
{
/*主菜单*/
printf("\n------ 学生成绩管理系统------\n");
printf("1. 增加学生记录\n");
printf("2. 修改学生记录\n");
printf("3. 删除学生记录\n");
printf("4. 按姓名查询学生记录\n");
printf("5. 按平均成绩排序\n");
printf("6. 退出\n");
printf("请选择(1-6):");
scanf("%d",&choice);
getchar();
switch(choice)
{
case 1:
Student_Insert();
break;
case 2:
Student_Modify();
break;
case 3:
Student_Delete();
break;
case 4:
Student_Select();
break;
case 5:
Student_SortByAverage();
Student_Display();
break;
case 6:
exit();
break;
}
IO_WriteInfo();
}
}
C语言程序设计
#include《stdio.h》
double func(int m)
{
double total=0.0;
int i;
for(i=1;i《=m;i++)
{
total+=1.0/i;
}
return total;
}
void main()
{
int m;
printf("Pleaseenter integer number:");
scanf("%d",&m);
printf("Theresult is %f\n",func(m));
}
输入10,输出结果为:
Pleaseenter integer number:10
Theresult is 2.928968

更多文章:
网页设计dw代码大全(网页设计DW 怎么添加背景图片代码是多少)
2025年12月4日 03:45
python数组变成列表(如何设置偏移/指向一个列表/数组在Python)
2026年1月10日 00:45
推荐适合死亡金属的异形电吉他+效果器+音响、价格总共5000左右?大虾们告诉我买电吉他 效果器 还有音箱什么牌子的好啊 价格呢
2025年7月27日 15:00
计算机考试网页制作怎么做(广东省计算机二级网页制作基础需要学习什么)
2026年1月14日 21:45
点击网页变成下载html(网页打开变成html下载提示,成空白页面)
2025年11月9日 00:30
字符串长度可以用lenngtn吗js(js中 我在一个函数中定义一个变量赋为值空!)
2025年7月14日 15:45
kali linux攻击手机(在kali_linux下,怎么在metasploit加入自己写的攻击模块)
2025年11月27日 11:15
win10怎么进入bios界面(win10系统bios怎么设置进入)
2026年1月20日 06:15
rpm命令未找到(rpm-qimysql-community-server.86_64: 未找到命令)
2026年5月7日 08:30














