C语言作业及答案3
电子科大15春《C语言(专科)》在线作业3答案
15春《C语言(专科)》在线作业3一、单选题(共20 道试题,共100 分。
)1. 一个C程序的执行是从()A. C程序的main函数开始,到main函数结束B. 本程序的第一个函数开始,到本程序最后一个函数结束C. 本程序的main函数开始,到本程序文件的最后一个函数结束D. 本程序的第一个函数开始,到本程序main函数结束正确答案:A2. 如果输入信息为:1234567则执行语句:scanf("%2d%2d",&x,&y);之后,x,y的值为()A. x为12,y为34B. x为2,y为3C. x为12,y为67D. x为1234567,y为0正确答案:A3. 设fp为指向某二进制文件的指针,且已经读到此文件末尾,则函数feof(fp)的返回值为()。
A. EOFB. 非0值C. 0D. NULL正确答案:B4. 设fp为指向某二进制文件的指针,且已经读到此文件末尾,则函数feof(fp)的返回值为()。
A. EOFB. 非0值C. 0D. NULL正确答案:B5. 以下选项中,当x为大于1的奇数时,值为0的表达式是()。
A. x%2==1B. x/2C. x%2!=0D. x%2==0正确答案:D6. C语言对嵌套if语句的规定是:else总是与()配对。
A. 其之前最近的ifB. 第一个ifC. 缩进位置相同的ifD. 其之前最近且不带else的if正确答案:D7. 在说明语句:int*f();中,标识符f代表的是()A. 一个返回值为指针型的函数名B. 一个用于指向整型数据的指针变量C. 一个用于指向函数的指针变量D. 一个用于指向一维数组的行指针正确答案:A8. 对函数的正确描述()A. 在C语言中可以嵌套定义函数B. 自定义函数和调用函数可以不在一个源文件中C. 函数定义都是平行的,独立的D. 不能嵌套调用函数正确答案:C9. 若有语句:taticcharx[]="12345"; staticchary[]={'1','2','3','4','5'}; 则下面那一个是正确的描述。
北理C语言作业及答案3
C语言作业3 43. 缩写展开成绩: 10 / 折扣: 0.8在保存字符串时,对出现在连续位置的若干个字符,如这些字符在ASCII表中也是连续出现,则可以将这些字符使用缩写形式进行保存,以节省保存空间。
例如用A-Z表示ABCD...XYZ,1-5表示12345,c-f表示cdef。
输入:包含缩写形式的字符串输出:将缩写形式进行还原后的字符串说明:只分别对大写字母、小写字母和数字进行压缩,对于形如9-A,a-C这样的缩写不进行处理。
测试输入期待的输出时间限制内存限制额外进程测试用例1以文本方式显示1.0-9↵以文本方式显示1.0123456789↵1秒64M 0测试用例2以文本方式显示1.G-I↵以文本方式显示1.GHI↵1秒64M 0测试用例以文本方式显示1.ABDG-K035-9abd-h↵以文本方式显示1.ABDGHIJK0356789abdefgh↵1秒64M 0#include <stdio.h>int main(){int i=0;char s[100];gets(s);while(s[i]!='\0'){if(s[i+1]!='-'){printf("%c",s[i]);i++;}else{if(s[i+2]>s[i] && ((s[i]<=57)+(s[i+2]<=57)!=1) && (s[i]<=57||s[i]>=65)){while(s[i]!=s[i+2]){printf("%c",s[i]++);}i+=2;}else printf("%c",s[i++]);}}printf("\n");return 0;}44. 函数递归成绩: 10 / 折扣: 0.8编写一个函数,使用递归算法求满足下述定义的整数序列的第n项。
c语言课外作业3
第5、6、7章函数、编译预处理、数组练习题一、选择题1.以下正确的说法是_______。
A.用户若需调用标准库函数,调用前必须重新定义。
B.用户可以重新定义标准库函数,若如此,该函数将失去原有含义。
C.系统根本不允许用户重新定义标准库函数。
D.用户若需调用标准库函数,调用前不必使用预编译命令将该函数所在文件包括到用户源文件中,由系统自动去调用。
2.以下正确的函数形式是_______。
A.double fun( int x , int y ){z = x + y ;return z ;}B.fun( int x , y ){int z ;return z ;}C.fun( x , y ){int x , y ; double z ;z = x + y ;return z ; }D.double fun( int x , int y ){double z ;z = x + y ;return z ;}3.如果一个函数没有返回值,那么该函数的类型是_______。
A.int B.char C.float D.void 4.C语言允许函数值类型缺省定义,此时该函数值隐含的类型是_______。
A.int B.char C.float D.void 5.以下说法不正确的是_______。
A.实参可以是常量、变量或表达式B.形参可以是常量、变量或表达式C.形参可以为任意类型D.形参应与其对应的实参类型一致6.一个函数形参的作用域是_______。
A.main函数B.形参所在函数体C.从定义处到文件尾D.整个程序7.以下关于形参和实参的说明中,错误的是_____。
A.实参和形参占用不同的内存单元,即使同名也相互不影响B.实参在进行函数调用时,它们都必须有确定的值,以便把这些值传给形参C.实参对形参的数据传送是双向的,可以把实参的值传给形参,也可以把形参的值反向传给实参D.形参变量只有在被调用时才分配内存单元8.C语言规定,简单变量做实参时,它和对应形参之间的数据传递方式是_______。
C语言习题级答案3
测试题31.C语言中不合法的字符常量是 CA、’\65’B、’\xff’C、’\028’D、’&’2.具有相同类型的指针变量p与数组a,不能进行的操作是(C)。
A、p=&a[0];B、p=a;C、p=&a;D、*p=a[0];3.若有x=22,y=26,z=0;,则执行下面语句后,z的输出结果是(B )z=x>y?x:yA、72B、26C、48D、224.对于建立函数的目的,正确的说法是DA、提高程序的执行效率B、减少程序的篇幅C、减少程序文件所占的内存D、提高程序的可读性5.有定义:char*p1,*p2;则下列表达式中正确合理的是CA、p1/=5B、p1+=5C、p1=&p2D、p1*=p26.以下程序的运行结果是(B)。
main(){int i=1,sum=0;while(i<10) sum=sum+1;i++;printf("i=%d,sum=%d",i,sum);}A、i=10,sum=9B、运行出现错误C、i=2,sum=17.若变量已正确定义且k 的值是4,计算表达式( j =4, k--) 后,j和k的值为(C)A、j=4, k=4B、j=3, k=3C、j=4, k=3D、j=3, k=48.给出以下定义:char x[ ]="abcdefg";char y[ ]={'a','b','c','d','e','f','g'};则正确的叙述为(A)A、数组x的长度大于数组y的长度B、数组x和数组y等价C、数组x和数组y的长度相同D、数组x的长度小于数组y的长度9.在下述程序中,判断i > j共执行了多少次 C#include <stdio.h>main(){int i = 0, j = 10, k = 2, s = 0;for( ; ; ){i += k;if(i > j){printf(“%d\n”, s);break;}s += i;}}A、4B、8C、6D、710.下列各m的值中,能使m%3==2&&m%5==3&&m%7==2为真的是(D)。
C语言练习题及答案解析三
C语言练习题及答案解析三(共3页)--本页仅作为文档封面,使用时请直接删除即可----内页可以根据需求调整合适字体及大小--一、单项选择题1.下面不属于C语言的数据类型是【】。
A) 整型 B) 实型 C) 逻辑型 D) 双精度实型分析:和其它高级语言相比,C语言中没有逻辑型数据,也没有逻辑型变量。
本题正确答案为C。
语言中,下列属于构造类型的是【】。
A) 整型 B) 实型 C) 指针类型 D) 结构体类型分析:C语言中构造类型的数据有三种:数组、结构体和共用体,数组是同类型数据的集合,结构体是不同类型的数据集合。
本题正确答案为D。
3.下列字符串不符合标识符规定的是【】。
A) SUM B) sum C) 3cd D) end分析:标识符规定只能由26个英文字母(大小写均可),数字0~9和下划线组成,且不能以数字开头,题中的3cd不符合规定。
本题正确答案为C。
4.下面能正确表示八进制数的是【】。
A) 0x16 B) 029 C) -114 D) 033分析:选项A)以0x开头是十六进制数,选项B)虽然是0开头,但出现了数字9,选项C)是十进制数。
本题正确答案为D。
5.下面四个选项中,均是合法实数的选项是【】。
A) B) C) D)-e5分析:实数有两种表示形式:小数形式和指数形式,小数形式必须有小数点,指数形式中,字母e之前必须有数字,e之后必须是整数。
选项A)中的"",选项C)中的"",选项D)中的"-e5"均是不合法的。
本题正确答案为B。
语言中,字符型数据在内存中存储形式是【】。
A) 原码 B) 反码 C) 补码 D) ASCII码分析:C语言中int型数据是以补码形式存放的,字符型数据是以ASCII码形式存放的。
本题正确答案为D。
7.下列正确的字符型常量是【】。
A) "a" B) ′\\\\′ C) "\\r" D) 277分析:字符常量的定义是用单引号括起来的一个字符,A和C的定界符不对,D超过了char型数据的表示范围,′\\\\′是转义字符。
c语言习题及详解答案
c语言习题及详解答案C语言是一种广泛使用的编程语言,以其结构化、可移植和高效性而著称。
以下是一些C语言的习题以及相应的详解答案。
# 习题1:求和问题编写一个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;}```# 习题2:判断素数编写一个C程序,判断一个整数是否为素数。
解答:```c#include <stdio.h>#include <math.h>int isPrime(int n) {if (n <= 1) return 0;for (int i = 2; i <= sqrt(n); i++) {if (n % 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;}```# 习题3:字符串反转编写一个C程序,输入一个字符串,然后输出它的反转。
解答:```c#include <stdio.h>#include <string.h>void reverseString(char str[]) {int len = strlen(str);for (int i = 0; i < len / 2; i++) {char temp = str[i];str[i] = str[len - i - 1];str[len - i - 1] = temp;}}int main() {char str[100];printf("请输入一个字符串:");scanf("%s", str);reverseString(str);printf("反转后的字符串是:%s\n", str);return 0;}```# 习题4:数组排序编写一个C程序,输入一个整数数组,然后使用冒泡排序算法对其进行排序。
国家开放大学电大《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语言)》第3阶段在线作业
一、单项选择题答题要求 :每题只有一个正确的选项。
1(5.0 分)5.0下列描述中不正确的是( ) A) 字符型数组中可以存放字符串 B) 可以对字符型数组进行整体输入、输出 C) 可以对整型数组进行整体输入、输出 D) 不能在赋值语句中通过赋值运算符“=”对字符型数组进行整体赋值 参考答案: C收起解析 解析:无2(5.0 分)5.0已有定义:int x=3,y=4,z=5;则表达式!(x y) z-1&&y z/2 的值是( ) A) 6 B) 0 C) 2 D) 1 参考答案: D收起解析解析:无3(5.0 分)5.0已定义 c 为字符型变量,则下列语句中正确的赋值语句是( ) A) c='66'; B) c="66" c=66; C) D) c="B"参考答案: C收起解析解析:无4(5.0 分)5.0下面有关 for 循环的正确描述是( ) A) for 循环只能用于循环次数已经确定的情况 B) for 循环是先执行循环体语句,后判断表达式 C) 在 for 循环中,不能用 break 语句跳出循环体 D) for 循环的循环体语句中,可以包含多条语句,但必须用花括号括起来 参考答案: D收起解析解析:无5(5.0 分)5.0下列循环语句中,不能够正常结束的是( ) A) int i=0;for(;i<100;i ); B) int i=0;for(;;){if(i >100)break;} C) int i=0,j=0;while(i<=j)j ; D) int i=0,j=0;do{i =j;i ;j ;}while(i<j); <="" div="" style="box-sizi ng: border-box;"> 参考答案: D收起解析解析:无6(5.0 分)5.0下列说法正确的是( ) A) main 函数必须放在 C 程序的开头 B) main 函数必须放在 C 程序的最后 C) main 函数可以放在 C 程序的中间部分,但在执行 C 程序时是从程序开头执 行的 D) main 函数可以放在 C 程序的中间部分,但在执行 C 程序时是从 main 函数 开始的 参考答案: D收起解析解析:无7(5.0 分)5.0已知 char b[5],*p=b; ,则正确的赋值语句是( ) A) b=“abcd”; B) *b=“abcd”; C) p=“abcd”; D) *p=“abcd”; 参考答案: C收起解析解析:无8(5.0 分)5.0已定义以下函数 fun(int *p) { return *p; } 该函数的返回值是( ) A) 不确定的值 B) 形参 p 中存放的值 C) 形参 p 所指存储单元中的值 D) 形参 p 的地址值 参考答案: D收起解析解析:无9(5.0 分)0已定义 c 为字符型变量,则下列语句中正确的是( ) A) c='97'; B) c="97";c="a"; C)c=97; D)参考答案: D收起解析解析:无10(5.0 分)5.0以下不合法的赋值语句是( ) A) x=(1,y=2);++x; B) C) x=y=15; D) y=int(x);参考答案: B收起解析解析:无11(5.0 分)5.0下述语句的输出为( ) int m=-1; printf(“%d,%u,%o”,m,m,m); A) -1,-1,-11 B) -1,32767,-177777 C) -1,32768,177777 D) -1,65535,177777 参考答案: D收起解析解析:无12(5.0 分)5.0已知 char ch=‘A’,且表达式:ch=(ch>=‘A’&&ch<=‘Z’)?(ch 32):ch, 该表达式的值是( ) A) A B) a C) z D) Z 参考答案: B收起解析 解析:无13(5.0 分)5.0下列数组定义及赋值不正确的是( ) A) int a[10]={0,1,2,3,4,5,6,7,8,9}; B) int a[ ]={0,1,2,3,4,5,6,7,8,9}; C) int a[2][5]= {0,1,2,3,4,5,6,7,8,9}; D) int a[2][ ]= {0,1,2,3,4,5,6,7,8,9}; 参考答案: D收起解析 解析:无14(5.0 分)5.0已知 char ch='A'; 且表达式 ch=(ch>='A' && ch<='Z') ?(ch 32) ::ch 的值是( )A a Z 出错 A) B) C) D)参考答案: B收起解析解析:无15(5.0 分)5.0以下程序中,while 循环的循环次数是( ) A) 1 B) 10 C) 6 D) 死循环,不能确定次数 参考答案: D收起解析解析:无16(5.0 分)5.0已知:int a[ ][3]={1,2,3,4,5,6,7,8,9,0}; 则数组 a 的第一维的大小是 () A) 2 B) 3 C) 4 D) 无法确定; 参考答案: C收起解析解析:无17(5.0 分)5.0下面不是 C 语言基本数据类型的是( ) A) 指针类型整型 B) C) 无符号长整型 D) 单精度型参考答案: A收起解析解析:无18(5.0 分)5.0已知小写字母的 ASCII 码为 97,对于 int a=99, b='b'; printf(“%c,%d”, a , b);的结果是( )99, b A)c, 98 B) C) 99, 98c, b D)参考答案: B收起解析解析:无19(5.0 分)5.0以下不能正确定义二维数组的选项是( ) A) int a[2][2]={{1},{2}} B) int a[][2]={l,2,3,4} C) int a[2][2]={{l},2,3} D) int a[2][]={{1,2},{3,4}} 参考答案: D收起解析解析:无20(5.0 分)5.0已知 int a=4,b=5; ,这执行表达式 a=a>b 后,变量 a 的值为( ) A) 0 B) 1 C) 4 D) 5 参考答案: A收起解析 解析:无。
C语言程序设计练习三(参考答案)
《C语言程序设计》练习三(参考答案)三、阅读分析题1.请阅读分析下面程序,然后写出运行结果。
x=8,y=-5x=-5,y=82.请阅读分析下面程序,然后写出运行结果。
1 5 6 303.请阅读分析下面程序,然后写出运行结果。
#**$@@4.阅读下面程序,写出运行结果(已知A的ASCII码为65,a的ASCII码为97)。
运行结果:d,100,D,1445.阅读下面程序,并回答问题:(1)若程序运行时,输入3、2和5,则输出结果是什么?(2)写出程序所实现的功能。
答:(1)5,3,2(2)输入三个整数,按从大到小的顺序输出。
6.阅读下面程序,并回答问题:(1)程序输出结果是多少?(2)外循环执行完一次时,m和n的值分别是多少?(3)将while(n>m)n-=m;语句删除后,程序运行情况如何?答:(1)m=1(2)m=9,n=5(3)程序进入无限循环17.阅读下面程序,写出运行结果。
运行结果:7,10,9,9878.阅读下面程序,并回答问题:(1)若程序运行时,输入6和9,输出结果是什么?输出结果是:1(2)说明程序的功能。
程序功能:输入2个数存入a和b变量中,计算a2+b2存入x变量中,如果x大于100则将x整除100的值存入y中并输出y的值,否则输出a+b的值。
9.阅读下面程序,并回答问题:(1)程序输出结果是什么?输出结果:a=8(2)该程序完成什么功能?程序功能:求两个数的最大公约数(3)若将while循环替换为do-while循环,请写出相应的程序段。
#include <stdio.h>void main( ){ int u,v,a,b,t,r;u=24;v=16;if(u>v){t=u;u=v;v=t;}a=u;b=v;do{ r=b%a;b=a;a=r;}while(r!=0);printf(″b=%d\n″,b);}10.从键盘输入字符A时,写出下面程序的运行结果。
C语言第3章课后习题答案
程序如下: 程序如下: 习题3-13】答案 【习题 】 #include <stdio.h> void main( ) { float money; int national, count; printf(" printf("Input national or external: "); scanf("%d" scanf("%d",&national); printf(" printf("Input count of product: "); scanf("%d" scanf("%d",&count); if(national) /* 国内销售 */ if(count<=80) money=count*350.0; else money=count*350.0-(countmoney=count*350.0-(count-80.0)*20.0; else /* 国外销售 */ if( count<=1000) money=count*900.0; else money=count*900.0-(countmoney=count*900.0-(count-1000.0)*15.0; printf("total=%f" printf("total=%f",money); }
【习题3-14】方法 习题 】方法2
#include<stdio.h> void main() { char chr; char password; chr=getchar(); if(chr>='U'&&chr<='Z'||chr>='u'&&chr<='z') { password=chr+6password=chr+6-26; } else { password=chr+6; } printf("The character's password is %c",password); }
C语言第三、四章作业题答案
东华理工大学:C语言第三章作业题C程序设计第三章闭/开卷课程类别:考试/考查第三章顺序结构程序设计一、选择题1。
C语言中调用printf进行输出时需要注意,在格式控制串中,格式说明与输出项的个数必须相同。
如果格式说明的个数小于输出项的个数,多余的输出项将 A ;如果格式说明的个数多于输出项的个数,则对于多余的格式将输出不定值(或0)。
A)不予输出B)输出空格C)照样输出D)输出不定值或02.在scanf函数的格式控制中,格式说明的类型与输入的类型应该一一对应匹配.如果类型不匹配,系统 B 。
A)不予接收B)并不给出出错信息,但不可能得出正确信息数据C)能接受正确输入D)给出出错信息,不予接收输入3。
下列说法正确的是 D 。
A)输入项可以是一个实型常量,如scanf(”%f",4。
8);B)只有格式控制,没有输入项也能进行正确输入,如scanf(”a=%d,b=%d”);C)当输入一个实型数据时,格式控制部分应规定小数点后的位数,如scanf(”%5。
3f",&f);D)当输入数据时,必须指明变量的地址,如scanf("%f”,&f);4。
根据题目中已给出的数据的输入和输出形式,程序中输入/输出语句的正确是B 。
main(){int a;float x;printf("input a,x:”);输入语句输出语句}输入形式input a,x:3 2.1输出形式a+x=5。
10A)scanf("%d,%f",&a,&x);printf("\na+x=%4。
2f",a+x);B)scanf(”%d %f",&a。
&x);printf("\na+x=%4。
2f”,a+x);C)scanf(”%d %f”,&a,&x);printf(”\na+x=%6。
1f",a+x);D)scanf("%d %3.1f”,&a,&x);printf(”\na+x=%4。
C语言程序设计-第三次作业的部分答案及分析
三、写出下列每个程序运行后的输出结果1. #include<stdio.h>void SB(char ch) {switch(ch) {case 'A': case 'a'://相当于if(ch==’A’||ch==’a’)printf("WW "); break;case 'B': case 'b':printf("GG "); break;case 'C': case 'c':printf("PP "); break;default:printf("BB "); break;}}void main() {char a1='b',a2='C',a3='f';SB(a1);SB(a2);SB(a3);SB('A');//4次调用SB,实际参数分别为b、C、f和Aprintf("\n");}GG PP BB WW2. #include<stdio.h>#include<stdlib.h>double SD(int a, int b, char op) {double x;switch(op) {case '+': x=a+b; break;case '-': x=a-b; break;case '*': x=a*b; break;case '/': if(b) x=(double)a/b;else exit(1);break;default: {printf("运算符错!\n");exit(1);}}return x;}void main() {int x=20,y=8;printf("%3.2lf ",SD(x,y,'-'));//以浮点形式输出x和y 的差printf("%3.2lf ",SD(x,y,'*'));//以浮点形式输出x和y 的积printf("%3.2lf\n",SD(x+y,y,'/')); //以浮点形式输出x+y和y 的商}//小数点后保留2位。
C语言编程练习题与答案 顺序结构3-3
int main() {
int a,b; scanf("%d",&a);
b=(a-a%100)/100;a=a-100*b; //100 元的张数 printf("%d",b);
输入:|210 输出:|11010010 5.要求: 时间要求:1000 MS; 内存要求:32768 KB; 【继续考虑】如果要求输出十六进制该怎么办? 五、手动计算并深入解释计算过程 (《C 语言开发宝典》,上机练习 5.11,上机练习 5.12,原题) (《C 语言开发宝典》,上机练习 5.10,等同原题)【提交:纸质材料 + 口头】 请计算以下各表达式(双下划线部分)的解,并给出计算过程的详细解释:
答案: 1.5 2.运算出错,error C2106: '+=' : left operand must be l-value
(+=符号的左面必须是一个变量,不能是表达式) 3.14
printf("%d",a);
return 0; }
三、求以下算术表达式的值(codeup,1155,原题)答案 源代码: #include <stdio.h>
int main() {
int a; double x,y,n;
scanf("%lf %d %lf",&x,&a,&y); n=(x+a%3*(int)(x+y)%2/4);
输入:|1258 输出:|12 1 0 0 1 3 5.要求: 时间要求:1000 MS; 内存要求:32768 KB;
电子科技大19秋《C语言》在线作业3答案
电子科技大19秋《C语言》在线作业3
试卷总分:100 得分:100
【试题】下面程序段的运行结果是()
【试题】charc[5]={'a','b','\0','c','\0'};
【试题】printf("%s",c);
[A.]’a’’b’
[B.]ab
[C.]abc
[D.]ab□(其中□表示空格)
[仔细阅读以上题目,并完成该试题]
参考选项:B
【试题】若有以下程序段:inta[]={4,0,2,3,1},i,j,t;
【试题】for(i=1;i5;i++)
【试题】{t=a[i];j=i-1;
【试题】while(j=0&&ta[j])
【试题】{a[j+1]=a[j];j--;}
【试题】a[j+1]=t;}
【试题】......
【试题】则该程序段的功能是()
[A.]对数组a进行插入排序(升序)
[B.]对数组a进行插入排序(降序)
[C.]对数组a进行选择排序(升序)
[D.]对数组a进行选择排序(降序)
[仔细阅读以上题目,并完成该试题]
参考选项:B
【试题】设变量a是整型,f是实型,i是双精度型,则表达式10+'a'+i*f值的数据类型为()
[A.]int
[B.]float
[C.]double
[D.]不确定
[仔细阅读以上题目,并完成该试题]
参考选项:C。
C语言期末考试试卷及答案3
一、单项选择题(本大题共20小题,每小题1分,共20分)1.下列说法正确的是()A.C程序可以从任何一个函数开始执行B.main函数可以被其它函数调用C.一个C程序只能有一个main函数D.main函数中不能有形参2.下列属于正确的标示符是()A.?aB.a=2C.a.3D.a_33.下列数据中属于“字符串常量”的是A.ABCB.“ABC”C.‘abc’D.‘a’4.char型常量在内存中存放的是()A.ASCII代码B.BCD代码C.内码D.十进制代码5.设字符型变量a=3,b=6,计算表达式c=(a^b)<<2后c的二进制值是()A.00011100B.00000111C.00000001D.000101006.若有以下定义:char a;int b;float c;double d;则表达式a*b+d-c的值的类型为()A.floatB.intC.charD.double7.以下程序的输出结果是a=5,b=4,则输入数据的形式应该是()#include“stdio.h”main(){int a,b;scanf("%d,b=%d",&a,&b);printf("a=%d,b=%d",a,b);}A54B5,4C5b=4D5,b=48.C语言中,while和do…while循环的主要区别是()A.while的循环控制条件比do…while的循环控制条件严格B.do…while的循环体至少无条件执行一次C.do…while允许从外部转到循环体内D.do…while的循环体不能是复合语句9.循环语句for(x=0,y=0;(y!=123)||(x<4);x++);的循环执行()A.无限次B.不确定次数C.4次D.3次10.在C语言中,设有数组定义char array[]="China";则array所占的空间为()A.4个字节B.5个字节C.6个字节D.7个字节11.若变量已正确说明为int类型,要通过语句scanf(“%d%d%d”,&a,&b,&c);给a,b,c分别赋值3,5,8,不正确的输入形式是()A.3<enter>B.3,5,8<enter>5<enter>8<enter>C.3<enter>D.35<enter>58<enter>812.char*p="happy new year";char*q=p;int k;for(k=1;k<8;k++){putchar(*q);q++;}上面C程序段的输出结果是()A.happy new yearB.happy newC.happy nD.happyE.appy n13.设double*p[5];则A.p是指向double型变量的指针B.p是double型数组C.p是指针数组,其元素是指向double型变量的指针D.p是数组指针,指向double型数组14.两个指针变量不可以()A.相加B比较C相减D指向同一地址15.对C语言函数描述正确的是A.在C语言中调用函数时,只能把实参的值传给形参,形参的值不能传回给实参B.C函数既可以嵌套定义又可以递归调用C.函数必须有返回值,否则不能使用函数D.函数必须有返回值,返回值类型不定16.设有如下定义,则对data中的a成员的正确引用是()struct test{int a;float b;}data,*p=&data;A.(*p).data.aB.(*p).aC.p->data.aD.p.data.a17.有如下程序(提示:注意宏替换的规则)#define N2#define M N+1#define NUM2*M+1#main(){int i;for(i=1;i<=NUM;i++)printf(“%d\n”,i);}该程序中的for循环执行的次数是()A.5B.6C.7D.818.若有以下定义,则printf(“%d\n”,sizeof(them));的输出是()typedef union{long x[2];int y[4];char z[8];}MYTYPE;MYTYPE them;A.32B.16C.8D.2419.下列语句中,将c定义为文件型指针的是()A.FILE c;B.FILE*c;C.file c;D.file*c;20.下列关于C语言数据文件的叙述中正确的是A.文件由ASCII码字符序列组成,C语言只能读写文本文件B.文件由二进制数据序列组成,C语言只能读写二进制文件C.文件由记录序列组成,可按数据存放形式分为二进制文件和文本文件D.文件由数据流形式组成,可按数据的存放形式分为二进制文件和文本文件二、填空题(本大题共10小题,每小题2分,共20分)1.在定义变量的同时给变量赋予初值就称为___________________________________ 2.下面程序段的输出结果是___________________________________________ int a=28;a=a&21;printf(“%d%o\n”,a,a);3.能正确表示0≤a≤10的逻辑表达式是_________________________________4.若有定义int a[3],*p;则使p指向数组a的赋值语句是_______________________ 5.strcmp函数的功能是________________________________________6.写出数学式a acbbx24 2-+-=的C语言表达式________________________________ 7.将以下程序写成三目运算符的表达式是____________________________________if(a>b)max=a;else max=b8.设有定义如下:#define F(N)2*N,则表达式F(2+3)的值是_____________________. 9.在C语言中,指针运算符为___________________,取地址运算符________________。
C语言作业及参考答案
C语言及实验作业参考做法分支程序设计1.输入4个整数,按从小到大的顺序输出2.根据月份判断季节。
输入月份,输出春/夏/秋/冬。
要求用switch语言实现3.学生学习两门课:必修课成绩为course1,选修课成绩为course2,若两门都及格,打印pass,必修课不及格,打印fail4.从键盘输入一个年份,判该年是否是闰年,是闰年就输出yes,否则输出no 5.从键盘输入一个字符,判断该字符是数字字符、大写字母、小写字母、空格还是其他字符。
6.商店卖西瓜,10斤以上每斤0.8元, 8斤以上每斤0.6元, 6斤以上每斤0.4元,4斤以上每斤0.3元, 4斤以下每斤0.15元,输入西瓜重量和所付的钱数,输出应付的货款和应找的钱数循环程序设计1.从键盘上输入10个整数,计算这些整数的和2.水仙花数。
一个3位数,若其各位数字之和等于它本身,这个数就称为水仙花数.输出所有的水仙花数。
(如153)#include<stdio.h>int main()//方法一{ int num,bai,shi,ge;for(num=100; num<1000; num++){bai=num/100;shi=num/10%10;ge=num%10;if(num==bai*bai*bai+shi*shi*shi+ge*ge*ge)printf("%d\n",num);}return 0;}//方法二int main(){int i,j,k;for(i=1; i<10; i++)for(j=0; j<10; j++)for(k=0; k<10; k++)if(i*100+j*10+k==i*i*i+j*j*j+k*k*k)printf("%d\n",100*i+j*10+k);return 0;}3.计算分数序列2/1,3/2,5/3,8/5,13/8,21/13,.....前20项之和。
c语言经典习题及答案
c语言经典习题及答案C语言经典习题及答案C语言是一门广泛应用于计算机科学领域的编程语言,具有简洁、高效的特点。
作为一名学习C语言的学生或者程序员,经典习题的练习是非常重要的。
本文将介绍几个C语言的经典习题,并给出相应的答案。
习题一:编写一个程序,判断一个整数是否为素数。
解答:素数是只能被1和自身整除的整数。
我们可以用一个循环来判断一个数是否为素数。
具体代码如下:```c#include <stdio.h>int isPrime(int num) {if (num <= 1) {return 0;}for (int i = 2; i <= num / 2; 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;}```习题二:编写一个程序,输入一个整数n,输出1到n之间所有的完数。
解答:完数是指除了它本身以外的所有因子之和等于它本身的数。
我们可以用一个循环来判断每个数是否为完数。
具体代码如下:```c#include <stdio.h>int isPerfectNumber(int num) {int sum = 0;for (int i = 1; i <= num / 2; i++) {if (num % i == 0) {sum += i;}}if (sum == num) {return 1;} else {return 0;}}int main() {int n;printf("请输入一个整数:");scanf("%d", &n);printf("%d到%d之间的完数有:", 1, n); for (int i = 1; i <= n; i++) {if (isPerfectNumber(i)) {printf("%d ", i);}printf("\n");return 0;}```习题三:编写一个程序,输入一个正整数n,输出n的阶乘。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
)。
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 都不能定义为用户标识符
a[k]=k; }
fun3()
{ int k;
for (k=0;k<MAX;k++)
printf("%3d",*(a+k)); }
A) 0 2 4 6 8
02468
B) 0 2 4 6 8
01234
C) 0 1 2 3 4
02468
D) 0 1 2 3 4
01234
14、已知:int x;执行下面的程序段后,输出结果为( )。
C 语言测试 3
一、单项选择题
1、 有定义语句:int x, y;,若值 11,变量 y 得到数值 12,下面四组输入要通过
scanf("%d,%d",&x,&y);语句使变量 x 得到数形式中,错误的是( )
A)11 12<回车>
B)11,
12<回车>
C)11,12<回车>
D)11 ,<回车>12<回车>
float f;
}a, b;
A)变量 a 所占内存的长度等于成员 f 的长度
B)变量 a 的地址和它的各成员地址都是相同的
C)可以在定义时对 a 初始化
D)不能对变量 a 赋值,故 a=b 非法
11、C 语言库函数 fgets(str, n, fp)的功能是(
)。
A)从文件 fp 中读取长度 n 的字符串存入
int a[MAX],k;
main()
{ printf("\n"); fun1(); fun3(); printf("\t"); fun2(); fun3(); }
fun1()
{ for (k=0; k<MAX;k++)
a[k]=k+k;}
fun2()
{ int a[MAX],k;
for (k=0;k<5;k++)
B)从文件 fp 中读取长度不超过 n-1 的字符串存入 str 指向的内存
C)从文件 fp 中读取 n 个字符串存入 str 指向的内存
D)从串 str 读取至多 n 个字符到文件 fp
12、下述程序向文件输出的结果是(
)。
#include<stdio.h>
void main( )
{ FILE *fp=fopen(“TEST”, “wb”);
fprintf(fp, “%d%5.0f%c%d”, 58, 76273.0, ‟-‟, 2278);
fclose(fp);
}
A) 58 75273 - 2278
B) 5876273.000000-2278
C) 5875273-2278
D) 因文件为二进制文件而不可读
13、下面程序输出结果是(
)。
#define MAX 5
for (x=3; x6; x++) printf ((x%2)? “**%d”: “##%d\n”, x);
A)**3
B)##3
C)##3
##4
**4
**4##5
**5
**5
##5
15、说明语句“int (*r)( ):”的含义是( )。
A)r 是一个指向一维数组的指针变量
B)r 是指针变量,指向一个整型数据
C)r 是一个指向函数的指针,该函数的返回值是一个整型
D)以上都不对
D)**3##4
二、判断题
1、switch 语句执行完一个 case 后面的语句后,流程控制转移到下一个 case 继续执行(
)。
2、if 语句的条件表达式必须是逻辑表达式(
)。
3、C 语句的一个循环体内允许又包含另一个完整的循环结构(
}
A)m=3 B)m=2 C)m=1 D)m=0
6、运行下面的程序运行后,如果从键盘上输人 5,则输出结果是()。
main()
{ int x;
scanf("%d",&x);
if(x--<5) printf("%d"'x);
else printf("%d"'x++);
}
A缺省,则函数的默认类型是(
5、运行以下程序后,如果从键盘上输入 65 14<回车>,则输出结果为()。
main()
{ int m,n;
printf("Enter m,n:");
scanf("%d%d,&m,&n");
while(m!=n)
{ while(m>n) m-=n;
while(n>m) n-=m;
}
printf("m=%d\n",m);
)。
9、不能将一个结构体变量作为一个整体进行输入和输出(
)。
10、在 C 编译中,对枚举元素按常量处理(
)。
11、C 程序中的 main( )函数必须放在程序的开始部分( )。
12、switch 后面括号内的表达式可以是整型表达式或字符型表达式( )。
2、 若有语句 int a=1,b=2,c=3;则以下值为 0 的表达式是(
)
A)’a’&&’b’ B)a<=b
C) ((a>b)||(b<c)
D)(!(a+b)==c&&a)
3、设 int a=9;则 printf(″%d,%d\n″,a , a++);的输出结果是 (
)。
A)9,10
B)10,9