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

点赞 0
收藏 0

文章为作者独立观点不代本网立场,未经允许不得转载。