C语言程序设计-智慧树-知到-网课答案
本文转载自 众课帮 公众号
1、标识符的长度建议在( )个字符以内。A、5B、6C、7D、8答案:82、下列哪个是不合法的标识符( )。A、5abcB、A123C、a_34D、a_b答案:5abc
3、以下哪项不是C语言的关键字( )。A、intB、forC、deD、char答案:integer不是C语言中的类型关键字
4、C语言中分隔符不包括( )。A、注释符B、空白符C、普通分隔符D、不普通分隔符答案:不普通分隔符
5、下列描述不正确的是( )。A、程序段通常由多条语句组成。B、花括号之内的内容统称为函数体。C、用户定义的函数名由用户命名。D、用户自定义的函数只能在主函数之前。答案:用户自定义的函数只能在主函数之前。
1、C语言对不同的数据分配不同长度的存储空间。答案:对2、C语言中的整型常量有三种表现形式。答案:对3、整型常量不必使用强制类型说明就可以直接使用。答案:对4、字符型常量是用双引号引起来的一个字符。答案:错5、字符型数据和整型数据是可以互相通用,并可进行算术运算的。答案:对1、在C语言程序中,表达式5%(-2)的结果是( )。A、2.5B、2C、1D、3答案:1
2、在C语言程序中,表达式5/2的结果是( )。A.2B.3C.B.5D.1答案:A3、如果int a=3,b=4;则条件表达式\”aA、3B、4C、0D、1答案:3
4、若int x=2,y=3,z=4; 则表达式xA、4A.4B.3C.2D.0E.1答案:B
5、C语言中,关系表达式和逻辑表达式的值是( )。A、0B、0或1C、1D、‘T’或’F’答案:0或1
1、以下哪项不是算法的特征( )。A、无穷性B、确切性C、有输入D、可行性答案:无穷性
2、程序设计不包括以下哪项( )。A、分析B、设计C、测试D、编写代码答案:编写代码
3、接收由键盘输入数据对应函数是( )。A、putchar()B、getchar()C、put()D、get()答案:getchar()
4、scanf()函数的语法格式为( )。A、scanf(格式控制)B、scanf(地址表列)C、scanf(格式控制,地址表列)D、scanf(格式控制,地址表列);答案:scanf(格式控制,地址表列);5、putchar()函数的语法格式为( )。A、putchar()B、putchar();C、putchar(字符表达式);D、putchar(字符表达式)答案:putchar(字符表达式);
1、C语言提供了三种形式的if语句。答案:对
2、单分支结构的语法特征为一个条件表达式,一个可选执行分支。答案:对
3、双分支结构的语法特征为一个条件表达式,两个可选执行分支。答案:对
4、switch-case语句中的表达式只能是int类型。答案:错——————————–5、switch-case语句的语法特征是一个表达式,n个可执行分支。答案:对——————————–1、循环体结构的初始化部分是对循环控制变量的初始化,只做一次。答案:对——————————–2、循环体结构的判断部分是判断循环控制变量的值是否满足条件。答案:对——————————–3、循环体结构的循环体部分是被反复执行的部分。答案:对——————————–4、迭代部分对循环控制变量的每一次修改不一定使其值要接近边界值。答案:错——————————–5、利用goto语句也可以实现循环结构。答案:对——————————–
C语言程序设计编程题
1. 以下程序由终端输入两个整数给变量x和y,然后输出x和y,在交换x和y中的值后。再输出x和y。
1. 以下程序由终端输入两个整数给变量x和y,然后输出x和y,在交换x和y中的值后。再输出x和y。
编辑
添加图片注释,不超过 140 字(可选)
以下是程序运行情况:
Enterx&y(由第四行的printf输出)
123 456<CR>(从键盘输入两个整数,<CR>代表Enter键)
x=123 y=456(由第六行的Printf输出)
x=456 y=123(由第八行的Printf输出)
2.输入一个double类型的数,使该数保留小数点后两位,对第三位小数进行四舍五入处理,然后输出此数。
编辑
添加图片注释,不超过 140 字(可选)
运行结果如下:
Enter x:(Printf输出提示信息)
123.456<CR>(从键盘输入123.4567,<CR>代表Enter键)
x=123.456700(输出原始数据)
x=123.460000(输出对第三位小数进行四舍五入后的数据)
注意:在Scanf函数中给出double类型变量输入数据时,应该使用%lf格式转换说明符,而输出,对应的格式转换说明符可以是%f,也可以是%f。
3.编写程序:把560分钟换算成用小时和分钟表示,然后进行输出。
编辑
添加图片注释,不超过 140 字(可选)
注:可以将该题改为输入一个数将其分解为小时和分钟来表示。
编辑
添加图片注释,不超过 140 字(可选)
注:对于第一个printf(“Enter x:\\n”);有点麻烦。
4.编写程序:输入两个整数:1500和350,求出它们的商和余数并进行输出。
编辑
添加图片注释,不超过 140 字(可选)
编辑
添加图片注释,不超过 140 字(可选)
注:本题同样可以进行以上操作将一个数分解。
5.编写程序:读入三个双精度数,求它们的平均值并保留此平均值小数点后一位,对小数点后第二位进行四舍五入,最后输出结果。
编辑
添加图片注释,不超过 140 字(可选)
6.编写程序:读入三个整数给a,b,c然后交换它们中的数,把a中原来的值给b,把b中原来的值给c,把c中原来的值给a,然后输出a,b,c。
编辑
添加图片注释,不超过 140 字(可选)
7.输入两个数,分别放入x和y中,若两个数不相等,则输出其中的大数;若两数相等,则输出字符串x==y和x的值。
编辑切换为居中
添加图片注释,不超过 140 字(可选)
本题是一个应用if语句的简单程序,其执行过程若下:(书本程序)
(1).printf语句在屏幕上显示提示信息:Enter x&y:之后,scanf语句等待用户给变量x,y输入两个整数,然后把输入的两个数显示在屏幕上;
(2).执行第七行的if语句。计算表达式x>y的值。如果x大于y,表达式的值为1,则调用printf函数输出x的值;否则,如果x小于y,表达式的值为0,则跳过此输出语句继续执行步骤(3);
(3).执行第八行的if语句。计算表达式y>x的值。如果y大于x,则调用printf函数,输出y的值;否则跳过此输出语句继续执行步骤(4);
(4).执行第九行的if语句。计算表达式x==y的值。如果x等于y,则调用printf函数输出字符串x==y和x的值;否则跳过此输出语句继续执行步骤(5);
(5).程序结束。
8.输入三个整数,分别放在变量a,b,c中,然后把输入的数据重新按由小到大的顺序放在变量a,b,c中,最后输出a,b,c中的值。
编辑
添加图片注释,不超过 140 字(可选)
注:(1).在这里的if语句其下的语句
是必须要有{}的,否则其程
是不正确的。
(2).在这里并不是将数字进行讨论(数学讨论)的只需要将其表示出来即可。并不是讨论。
(3).这里的if语句没有else语句。在一个语句中可以有if而没有else但不可以有else而没有if
9.输入两个数,分别赋给x和y,输出其中的大数。
编辑切换为居中
添加图片注释,不超过 140 字(可选)
这里对于if语句中是否有else分别作出了程序。
10.输入一个数,判断它是否能被3整除。若能被3整除,打印YES;不能被3整除打印NO。
编辑切换为居中
添加图片注释,不超过 140 字(可选)
11.编写程序:根据输入的学生成绩给出相应的等级,大于或等于90分以上的等级为A,60分以下的等级为E,其余每10分为一个等级。
编辑切换为居中
添加图片注释,不超过 140 字(可选)
12.编写程序;输入一位学生的生日(年:y0、月:m0、日:d0),并输入当前的日期(年:y1、月:m1、日:d1),输出该生的实际年龄。
13.编写程序:输入一个整数,打印出它是奇数还是偶数。
编辑
添加图片注释,不超过 140 字(可选)
14.编写程序:输入a,b,c三个数,打印出最大值。
编辑
添加图片注释,不超过 140 字(可选)
15.对于以下函数:
X (-5<x<0)
编辑
添加图片注释,不超过 140 字(可选)
y= x-1 (x=0)
x+1 (0<x<10)
编辑
添加图片注释,不超过 140 字(可选)
编写程序,要求输入x的值,输出y的值。分别用(1)不嵌套的if语句(2)嵌套的if语句(3)if-else语句(4)switch语句。
16.编写程序:求1*1+2*2+3*3+…+n*n直到累加和大于或等于10000为止。
编辑切换为居中
添加图片注释,不超过 140 字(可选)
注:while循环的执行过程:
(1).计算while后圆括号中表达式的值。当值为非0时,执行步骤(2);当值为0时执行步骤(4)。(亦为1是才循环,0不循环)
(2).执行循环一次。
(3).转去执行步骤(1)。
(4).退出while循环。
17.用Π/4=1-1/3+1/5-1/7+1/9-…公式求Π的近似值,直到最后一项的绝对值小鱼0.000001为止。
编辑
添加图片注释,不超过 140 字(可选)
18.用迭代法求方程x=cosx的根,要求误差小于0.000001.
编辑
添加图片注释,不超过 140 字(可选)
19.计算Fibonacci数列,直到某项大于1000为止,并输出该项的值。
编辑
添加图片注释,不超过 140 字(可选)
20.编写程序:求1+2+3+…+100。
编辑
添加图片注释,不超过 140 字(可选)
21.编写程序:计算半径为0.5mm、1.0mm、1.5mm、2.0mm、2.5mm时的圆的面积。
编辑
添加图片注释,不超过 140 字(可选)
22.使用双层for循环打印如下由星号组成的倒三角图形。
编辑
添加图片注释,不超过 140 字(可选)
23.编写程序:找出2—100以内的所有素数。
编辑切换为居中
添加图片注释,不超过 140 字(可选)
24.计算S=1+2+3+…+I,直到累加到S大于5000为止,并给出S和i的值。
编辑
添加图片注释,不超过 140 字(可选)
25.编写程序:打印所有的四位数使其满足于:千位*个位=十位+百位。
编辑
添加图片注释,不超过 140 字(可选)
26.编写程序:求1!+2!+3!+4!,用循环嵌套实现。
27.用一角人民币换1分,2分和5分硬币,共有多少种换法?
28.已知一首项大于0的等差数列的前4项和为26.前4项的积为880,求这个数列。
29.求3个数的最小公倍数。
30.打印输出所有的水仙花数。(所谓水仙花数,是指一个三位数,是指一个数,其各位数字的立方和等于该数本身)。
31.从键盘输入10整数,求其中的最大值和最小值。
32.用冒泡排序法将10个整数从小到大排序。
33.在n个数中查找一个数x(顺序查找算法)。
34.将一个二维数组行和列的元素互换,存到另一个二维数组中。
编辑
添加图片注释,不超过 140 字(可选)
35.有一个4*4矩阵,分别求主对角线元素之和与次对角线元素之和。
36.有一个3*4的矩阵,要求编程求出其中值最大的那个元素,以及其所在的行号和列号。
37.不借助另外的矩阵,将矩阵a转置。
38.输入一个以回车符结束的字符串(少于80个字符),统计其中数字字符的个数。
39.输入一个字符串,判断该字符串是否是回文字符串。
(调用函数)
40.求三个数中的最大值。
41.已知数列的第一项为0,第二项为1,以后每一项均为前两项之和。编写程序,输出该数列的前15项。
42.对n个随机整数组成的序列递减排列。
43.输入字符名,统计其字母数,空格数以及数字数。
编辑
添加图片注释,不超过 140 字(可选)
44.打印九九乘法表。
C语言程序设计
一、填空题(每空1分,共10分) 1. C语言的数据类型中,构造类型包括:数组、 和 。 2. 在C程序中,指针变量能够赋 值或 值。 3. C目标程序经 后生成扩展名为exe的可执行程序文件。 4. 设有定义语句 static char s[5」; 则s[4]的值是 。 5. 设x为int型变量。与逻辑表达式!x等价的关系表达式是 。 6. 若一全局变量只允许本程序文件中的函数使用,则该变量需要使用的存储类别是 。 7. 磁盘文件按文件读写方式分类可以为顺序存取文件和 。 8. 设有下列结构体变量xx的定义,则表达式sizeof(xx)的值是_________。 struct { long num; char name[20]; union{float y; short z;} yz; }xx; 二、单项选择题(每小题1.5分,共30分)
1. 设有定义int x=8, y, z; 则执行y=z=x++, x=y= =z; 语句后,变量x值是( ) A、0 B、1 C、8 D、9 2. 有以下程序 main( ) { int i=1,j=1,k=2; if((j++‖k++)&&i++) printf(\”%d,%d,%d\\n\”,i,j,k);} 执行后输出结果是( ) A、 1,1,2 B、2,2,1 C、 2,2,2 D、2,2,3 3. 已知i、j、k为int型变量,若从键盘输入:1,2,3<回车>,使i的值为1、j的值为2、k的值为3,以下选项中正确的输入语句是( ) A、 scanf( “%2d%2d%2d”,&i,&j,&k); B、 scanf( “%d %d %d”,&i,&j,&k); C、 scanf( “%d,%d,%d”,&i,&j,&k); D、 scanf( “i=%d,j=%d,k=%d”,&i,&j,&k); 4. 有以下程序 main() { int a=5,b=4,c=3,d=2; if(a>b>c) printf(\”%d\\n\”,d); else if((c-1>=d)= =1) printf(\”%d\\n\”,d+1); else printf(\”%d\\n\”,d+2); } 执行后输出结果是 ( ) A、2 B、3 C、 4 D、 编译时有错,无结果 5. 以下程序段 ( ) x=1; do { x=x*x;} while (!x); A、 是死循环 B、 循环执行二次 C、 循环执行一次 D、 有语法错误 6. 以下不能正确定义二维数组的选项是( ) A、 int a[2][2]={{1},{2}}; B、 int a[][2]={1,2,3,4}; C、 int a[2][2]={{1},2,3}; D、 int a[2][]={{1,2},{3,4}}; 7. 有以下程序 main() { int aa[4][4]={{1,2,3,4},{5,6,7,8},{3,9,10,2},{4,2,9,6}}; int i,s=0; for(i=0;i<4;i++) s+=aa[i][1]; printf(“%d\\n”,s); } 程序运行后的输出结果是 ( ) A、11 B、19 C、 13 D、20 8. 以下程序的输出结果是 ( ) main() { char ch[3][5]={\”AAAA\”,\”BBB\”,\”CC\”}; printf(\”\\\”%s\\\”\\n\”,ch[1]); } A、\”AAAA\” B、\”BBB\” C、\”BBBCC\” D、\”CC\” 9. 有以下程序 #define f(x) x*x main( ) { int i; i=f(4+4)/f(2+2); printf(“%d\\n”,i); } 执行后输出结果是( ) A、28 B、22 C、16 D、4 10. 决定C语言中函数返回值类型的是( )。 A、return语句中的表达式类型 B、调用该函数的主调函数类型 C、调用函数时临时指定的类型 D、定义函数时在函数首部中所指定的类型(若缺省,则隐含为int型)。 11. 系统对预处理命令(如宏替换、文件包含、条件编译)的处理时机是( )。 A、编译源程序 B、编译源程序之前 C、连接目标文件时 D、运行程序时 12. 在位运算中,操作数每左移一位,其结果相当于( )
A、操作数乘以2 C、操作数除以2 B、操作数除以4 D、操作数乘以4
13. 下述描述中不正确的是( )。 A、字符型数组中可以存放字符串 B、可以对字符型数组进行整体输入、输出 C、可以对整型数组进行整体进行输入、输出 D、不能在赋值语句中通过赋值运算符“=”对字符型数组进行整体赋值 14. 若有以下定义 int a[2][3],则对a数组第i行第j列元素的正确引用是( ) A、 *(*(a+i)+j) B、 (a+i)[j] C、 *(a+i+j) D、 *(a+i)+j 15. 有以下程序 void fun(char *a, char *b) { a=b; (*a)++; } main() { char c1=\’A\’,c2=\’a\’,*p1,*p2; p1=&c1 p2=&c2 fun(p1,p2); printf(\”%c%c\\n\”,c1,c2); } 程序运行后的输出结果是( )
A、 Ab B、 aa C、 Aa D、 Bb
16. 已定义以下函数 Fun (char *p2, char * p1) { while((*p2=*p1)!=\’ \\0\’){ p1++;p2++; }} 函数Fun的功能是( ) A、将p1所指字符串复制到p2所指内存空间 B、将p1所指字符串的地址赋给指针p2 C、对p1和p2两个指针所指字符串进行比较 D、检查p1和p2两个指针所指字符串中是否有\’\\0\’ 17. 设有以下结构体类型: struct st { char name[8]; int num; float s[4]; }student[50]; 并且结构体数组student中的元素都已有值,若要将这些元素写到硬盘文件fp中,以下不正确的形式是( ) A、 fwrite(student,sizeof(struct st),50,fp); B、 fwrite(student,50*sizeof(struct st),1,fp); C、 fwrite(student,25*sizeof(struct st),25,fp); D、 for(i =0;i<50;i++) fwrite(student+i, sizeof(struct st),1,fp);
18. 若有说明语句
char a[ ]= \”It is mine\”;
char *p=\” It is mine\”;
则以下不正确的叙述是( )
A、 a+1表示的是字符t的地址
B、 p指向另外的字符串时,字符串的长度不受限制
C、 p变量中存放的地址值可以改变
D、 a中只能存放10个字符
19. 当调用函数时,实参是一个数组名,则向函数传送的是 ( )
A、 数组的长度
B、 数组的首地址
C、 数组每一个元素的地址
D、 数组每一个元素中的值
20. 设有变量说明 int a=3,b=6; char c; 若执行赋值语句 c=(a^b)<<2;
则c的二进制值是( )。
A、00011100 B、00000111 C、00000001 D、00010100
三、阅读程序,将运行结果写到各题右侧的空白处(每小题4分,共20分)
1.#include <stdio.h>
main()
{ char str[]=\”1234567\”;
int i;
for(i=0; i<7; i+=3)
printf(\”%s\\n\”, str+i);
}
2.#include <stdio.h>
main()
{ int i;
for(i=0;i<3;i++)
switch(i)
{ case 0: printf(\”%d\”,i);
case 2: printf(\”%d\”,i);
default: printf(\”%d\”,i);
}
}
3.#include <stdio.h>
main()
{
int i;
for (i=1;i<6;i++)
{
if (i%2){
printf(\”#\”);
continue; }
printf(\”*\”);
}
printf(\”\\n\”);
}
4.#include <stdio.h>
int b=1;
func (int p)
{
static int d=5;
d+=p;
printf (\”%d,\”,d);
return (d );
}
main ()
{
int a=3;
printf(\”%d\\n\”,func(a+func(b)));
}
5.#include <stdio.h>
struct stu
{ int num; char name[10]; int age;};
void py(struct stu *p)
{printf(\”%s\\n\”, (*p).name);}
main()
{
struct stu student[3]={{1001,\”Sun\”,25},{1002,\”Ling\”,23},{1003,\”Shen\”,22}};
py(student+2);
}
四、阅读程序或程序段,填空(每小题4分,共20分)
1.下面程序的功能是调用fun函数以删除字符串中指定的字符,请填空。
void fun(char s[],int c)
{ int i,j;
for(i=0,j=0;s[i]!=\’\\0\’;i++)
if ( )
s[j]=\’\\0\’;
}
main()
{ char str[]=\”abcdefgAbcd\”, ch;
scanf(\”%c\”,&ch);
fun(str,ch);
printf(\”%s\\n\”,str);
}
2.下面程序是按学生姓名查询其排名和平均成绩,查询可连续进行直到键入0时结束,请填空。
#include<string.h>
#define NUM 4
struct student
{ int rank;
char *name;
float score;};
stu[]={3,”Tom”,89.3,4,”Mary”,78.2,1, ”Jack”,95.1,2, ”Jim”,90.6};
main()
{ char str[10]; int i;
do
{ printf(\”Enter a name: \”);
scanf(\”%s\”,str);
for(i=0;i<NUM;i++)
if ( )
{ printf(\”%s,%d,%f\\n\”,stu[i].name, stu[i].rank,stu[i].score); break;}
if(i>=NUM) printf(\”Not found\\n\”);
}while(strcmp(str,”0”)!=0);
}
3.下面程序是用“顺序查找法”查找数组中的元素,请填空。
main()
{ int a[8]={25,57,48,37,12,92,86,33};
int i, x;
scanf(\”%d\”, &x);
for(i=0;i<8;i++)
if ( )
{printf(\”Found!The index is :%d\\n\”, i);break;}
if( )
printf(“Can’t found! \”);
}
4.下面程序由键盘输入一些字符,逐个把它们送到磁盘文件中,直到输入一个“!”为止,请填空。
#include<stdio.h>
main( )
{ FILE *fp;
char ch,fname[10];
printf(\”Input name of file: \\n\”); gets(fname);
if((fp=fopen(fname, \”w\”))= =NULL)
{printf(\”cannot open \\n\”);exit(0);}
printf(\”Enter data:\\n\”);
while ( ) fputc ( );
fclose(fp);
5.下面函数 fun 的功能是:将在字符串s中下标为奇数位置上的字符,紧随其后重复出现一次,放在一个新串t中, 例如:当s中的字符串为:\”ABCDEF\” 时,则t中的字符串应为:\”BBDDFF\”。
#include<string.h>
void fun (char *s, char *t)
{ int i,j;
for(i=0;i<=strlen(s);i++)
{ ;
;
}
}
main()
{ char s[100],t[100];
scanf(\”%s\”,s);
fun(s,t);
printf(\”The result is: %s\\n\”, t);
}
五、编程题(每小题10分,共20分)
1.编一个程序,将输入的一个字符串按反序存放,要求在主函数中输入字符串并输出反序后的字符串,在被调用函数中完成反序存放。例如:输入字符串“abcdefg”,输出“gfedcba”。
2.有一个班5位学生,各学4门课程,查找出有一门以上课程不及格的学生,打印出其全部课程的成绩。
本文作者及来源:Renderbus瑞云渲染农场https://www.renderbus.com
文章为作者独立观点不代本网立场,未经允许不得转载。