西南民大C语言试卷及问题详解
大学C语言期末考试试题(含答案)

第一章C语言概述1.1 选择题*1.1一个C程序的执行是从 A 。
A)本程序的main函数开始,到main函数结束B)本程序文件的第一个函数开始,到本程序文件的最后一个函数结束C)本程序的main函数开始,到本程序文件的最后一个函数结束D)本程序文件的第一个函数开始,到本程序main函数结束参考答案:A参考分析:C语言总是从main函数开始,main函数结束。
但是C 语言中存在一个exit(0)函数,它可以使得程序在任何时候、任何位置结束程序的运行。
如果不考虑exit(0)等函数的特殊作用,C则总是在main函数结束。
*1.2以下叙述正确的是 C 。
A)在C程序中,main函数必须位于程序的最前面B)在C程序的每一行只能写一条语句C)C语言本身没有输入输出语句D)在对一个C程序进行编译的过程中,可发现注释中的拼写错误参考答案:C参考分析:C程序对main函数的位置没有任何要求;其书写格式自由,一行可以写多条语句,一条语句(多关键字语句)可以写在多行;C语言忽略注释,把注释看作是一个空格,不会对注释中的内容进行语法检查。
因此,如果注释中存在错误,系统是不可能发现的。
另外,C语言的I/O操作均通过函数实现,系统本身未提供相应的语句。
1.3以下叙述不正确的是 D 。
A)一个C源程序可由一个或多个函数组成B)一个C源程序必须包含一个main函数C)C程序的基本组成单位是函数D)在C程序中,注释说明只能位于一条语句的后面参考答案:D参考分析:C语言中,注释语句的位置是任意的,当然,它不能破坏标识符的完整性。
C语言只是将一个注释看作是一个空格,因此对注释内的任何错误都不作检查。
1.4 C语言规定:在一个源程序中,main函数的位置 C 。
A)必须在最开始B)必须在系统调用的库函数的后面C)可以任意D)必须在最后参考答案:C*1.5一个C语言程序是由 B 。
A)一个主程序和若干个子程序组成B)若干函数组成C)若干过程组成D)若干子程序组成参考答案:B参考分析:通常许多语言程序由主程序和子程序构成,但是C语言是函数式语言,整个程序由众多函数组成。
西南大学19年12月C语言程序设计【0039】大作业答案

(c)程序必须有输入输出提示。
3. 依据下列提供的程序回答问题#include <stdio.h>int f(int m,int n){ int r;while(r=m%n){ m=n; n=r; }return(n);}int main(){ int int_num1, int_num2;printf("请输入两个正的整数(之间用逗号隔开):\n ");scanf("%d,%d",&int_num1,&int_num2);printf("int_num1= %d,int_num2= %d\n",int_num1,int_num2);printf("The maximun common divisor is %d\n",f(int_num1,int_num2));}(1)上述提供程序中,函数f的功能是什么?答:函数f的功能是求两个数的最大公约数。
(2)请依据提供的函数f代码所表示的算法内涵画出其中的传统流程图或N-S图或采用自然语言描述fun代码所表示的算法。
答:辗转相除法(欧几里德法) C语言中用于计算两个正整数a,b的最大公约数,采用函数嵌套调用形式进行求两个数的最大公约数。
其算法过程为:前提:设两数为a,b设其中a做被除数,b做除数,temp为余数Steps:大数放a中,小数放b中;求a/b的余数;若temp=0则b为最大公约数;如果temp!=0则把b的值给a,temp的值给a;返回第二步。
流程图:(3)在VC6.0环境下,运行上述程序时,若输入的数据序列为36,48其输出结果是什么?答:输出结果如下int_num1= 36,int_num2= 48The maximun common divisor is 12二、大作业要求大作业共需要完成3个大题:第1题,满分30分;第2题(1)-(5)任选两题完成,各15分,(6)题必做,10分,满分40分;第3题(1)-(3)必做,满分30分。
大学大一C语言程序设计期末考试试卷及答案剖析教学教材

四川师范大学计算机科学学院 2012~2013学年度第二学期期末考试C 语言程序设计试卷 试卷A答卷说明:1、本试卷共6页,答题纸3页,4个大题,35个小题,满分100分,120分钟完卷。
2、闭卷考试,所有的答案都必须写在答题纸上,判卷以答题纸上答案为准。
3、本试卷适用于2011级1、2、3班。
一、 单项选择题(在每小题的四个备选答案中,选出一个正确答案,并将正确答案的序号填在题干的括号内。
每小题1分,共20分) 1、 在C 语言中,下列标识符中合法的是( )A). -int B). in1_3 C). A_B!D D). const2、 不属于C 语言基本数据类型的是( )A). int B). union C). char D). unsigned3、 下面是对宏定义的描述。
不正确的是( )A). 宏不存在类型问题,宏名无类型,它的参数也无类型 B). 宏替换不占用运行时间C). 宏替换只是字符串的简单替代D). 宏替换时先检查类型,类型一致时才可以替换4、 C 语言中,″\\xfds ″在内存中占用的字节数是( )A).3 B).4 C).5 D).65、 设int x;则执行printf(″%x \n″,~x^x);的结果是( )A). ffffffff B). ff C). 0 D). 16、 对于while 语句,错误的说法是( )A).用条件控制循环体的执行次数 B).循环体至少要执行一次__________________学院__________级___________班 姓名_______________ 学号_______________………………………………(密)………………………………(封)………………………………(线)………………………………密 封 线 内 答 题 无 效C).循环体有可能一次也不执行D).循环体中可以包含若干条语句7、执行下列语句后输出的结果是( )int a=8,b=7,c=6;if(a<b)if(b>c){a=c;c=b;}printf("%d,%d,%d\n",a,b,c);A).6,7,7 B).6,7,8 C).8,7,6 D).8,7,88、设int a=9,b=20;则printf(″%d,%d\n″,a--,--b);的输出结果是( )A).9,19 B).9,20 C).10,19 D).10,209、设static char x[ ]=″12345″,y[ ]={′1′,′2′,′3′,′4′,′5′,′\0′};那么( )A).x数组的长度等于y数组的长度B).x数组的长度大于y数组的长度C).x数组的长度少于y数组的长度D).x数组与y数组的存储区域相同10、设int i,x[3][3]={1,2,3,4,5,6,7,8,9};则下面语句的输出结果是( )for(i=0;i<3;i++)printf(″%d″,x[i][2-i]);A).147 B).159 C).357 D).36911、执行完下列语句后,n的值是( )int n;for (n=0 ; n<100 ; n=2*n+1);A).125 B).126 C).127 D).12812、有以下语句:int a=6;a+=a-=a*a;printf(“%d”,a);输出结果( )A).–132 B).–60 C). -24 D). 013、为了连接两个字符串s1与s2,应当使用( )A). strcat( s1,s2 ) B). strcpy( s1, s2 ) C). strlen( s1, s2 ) D). strcmp( s1, s2 )14、设int a,*p;则语句p=&a;中的运算符“&”的含义是( )A).位与运算 B).逻辑与运算C).取指针内容 D).取变量地址15、下面输出的结果为( )i nt a=13, b=64;printf(“%d\n”, !a || (b>>3) );A).13 B).64C).1 D).016、下列定义正确的是( )A).enum t={a,b}x; B). enum t{1,2}x; C). e num {′+′,′-′}x;D). enum t{a,b}x;17、设有定义:struct u{int a[4];float b[3]; char c[16];}aa;则printf(″%d \n″,sizeof(aa));的输出是( )A).32 B).36 C).12 D).818、 数据-54.78在文本文件中占用的字节个数是( )A).4 B).5 C).6 D).819、 在宏定义#define p(r) 3.14*r 中,请问宏名是( )A). p B). p(r) C). 3.14*r D). p(r) 3.14*r 20、 要打开一个已存在的用于修改的非空二进制文件“hello.txt ”,正确语句是( )A). fp=fopen( "hello.txt ","r" ) B). fp=fopen( "hello.txt ","ab+" ) C). fp=fopen( "hello.txt ","w" ) D). fp=fopen( "hello.txt ","r+" )二、填空题(仔细阅读每小题的说明和源代码,并将正确答案写到答题纸上对应的题号处。
大学c语言考试题及答案

大学c语言考试题及答案一、选择题(每题2分,共20分)1. 下列关于C语言的描述中,错误的是:A. C语言是一种高级编程语言。
B. C语言具有跨平台的特性。
C. C语言是面向对象的编程语言。
D. C语言广泛应用于系统软件的开发。
答案:C2. C语言中,用于定义整型变量的关键字是:A. intB. floatC. doubleD. char答案:A3. 下列哪个选项是C语言中的合法标识符?A. 2variableB. variable2C. -variableD. variable$答案:B4. C语言中,用于实现顺序结构的控制语句是:A. ifC. whileD. switch答案:A5. 在C语言中,以下哪个函数用于计算两个数的和?A. max()B. pow()C. sqrt()D. strcat()答案:A6. C语言中,用于定义字符型变量的关键字是:A. intB. floatC. charD. double答案:C7. 下列哪个选项不是C语言的标准输入输出库函数?A. printf()B. scanf()C. cout()D. getchar()答案:C8. C语言中,用于定义浮点型变量的关键字是:B. floatC. doubleD. char答案:B9. 在C语言中,以下哪个关键字用于定义函数?A. classB. functionC. voidD. struct答案:C10. C语言中,用于实现条件选择的控制语句是:A. ifB. forC. whileD. switch答案:A二、填空题(每题2分,共20分)1. C语言中,用于定义布尔型变量的关键字是________。
答案:_Bool2. C语言中,用于定义字符串的字符数组时,最后一个元素必须是________。
答案:'\0'3. C语言中,用于实现循环结构的控制语句是________和________。
答案:for,while4. 在C语言中,________函数用于计算两个数的乘积。
2021年西南民族大学计算机科学与技术专业《计算机组成原理》科目期末试卷B(有答案)

2021年西南民族大学计算机科学与技术专业《计算机组成原理》科目期末试卷B(有答案)一、选择题1、假设寄存器R中的数值为200,主存地址为200和300的地址单元中存放的内容分别是300和400,则()访问到的操作数为200。
I.直接寻址200Ⅱ.寄存器间接寻址(R)Ⅲ.存储器间接寻址(200)Ⅳ.寄存器寻址RA.I、IⅣB.Ⅱ、ⅢC.Ⅲ、IVD.只有Ⅳ2、某计算机主存空间为4GB,字长为32位,按字节编址,采用32位定长指令字格式。
若指令按字边界对齐存放,则程序计数器(PC)和指令寄存器(IR)的位数至少分别是()。
A.30,30B.30,32C.32,30D.32,323、加法器采用先行进位的根本目的是()。
A.优化加法器的结构B.快速传递进位信号C.增强加法器的功能D.以上都不是4、用海明码对长度为8位的数据进行检/纠错时,若能纠正一位错,则校验位数至少为()。
A.2B.3C.4D.55、假设编译器规定int 和shot类型长度分别为32位和16位,若有下列C语言语句:unsigned short x=65530;unsigned int y=x;得到y的机器数为()。
A.00007FFAHB.0000 FFFAHC.FFFF 7FFAHD.FFFF FFFAH6、存储器采用部分译码法片选时,()。
A.不需要地址译码器B.不能充分利用存储器空间C.会产生地址重叠D.CPU的地址线全参与译码7、在一个容量为l28KB的SRAM存储器芯片上,按字长32位编址,其地址范围可从0000H到()。
A.3HB.7HC.7HD.3fH8、假定机器M的时钟频率为200MHz,程序P在机器M上的执行时间为12s。
对P优化时,将其所有乘4指令都换成了一条左移两位的指令,得到优化后的程序P。
若在M上乘法指令的CPl为102,左移指令的CPl为z,P的执行时间是P”执行时间的1.2倍,则P中的乘法指令条数为()。
大一c语言考试题及答案解析

大一c语言考试题及答案解析1. 以下哪个选项是C语言中合法的变量名?A. 2variableB. variable2C. variable-nameD. variable$name答案:B解析:在C语言中,变量名必须以字母或下划线开头,后面可以跟字母、数字或下划线。
选项A以数字开头,选项C和D包含非法字符(-和$),因此选项B是唯一合法的变量名。
2. C语言中,哪个关键字用于定义一个函数?A. classB. functionC. defD. void答案:D解析:在C语言中,定义函数的关键字是`void`,通常与`return`关键字一起使用来指定函数的返回类型。
例如,`void functionName()`定义了一个没有返回值的函数。
选项A和B不是C语言中的关键字,选项C是Python中的关键字。
3. 以下哪个选项是C语言中正确的注释方式?A. // This is a single line commentB. /* This is a single line comment */C. <!-- This is a single line comment -->D. Both A and B答案:D解析:在C语言中,单行注释可以使用`//`,而多行注释则使用`/*`开始和`*/`结束。
因此,选项A和B都是正确的注释方式,选项C是HTML中的注释方式,不适用于C语言。
4. C语言中,哪个运算符用于计算两个数的乘积?A. +B. -C. *D. /答案:C解析:在C语言中,`*`运算符用于计算两个数的乘积。
选项A是加法运算符,选项B是减法运算符,选项D是除法运算符。
5. 在C语言中,以下哪个选项是正确的字符串定义方式?A. char str[] = "Hello, World!";B. char str = "Hello, World!";C. char str[] = {'H', 'e', 'l', 'l', 'o', ',', ' ', 'W', 'o', 'r', 'l', 'd', '!', '\0'};D. Both A and C答案:D解析:在C语言中,字符串可以通过字符数组来定义,可以是直接赋值的字符串字面量(选项A),也可以是字符的列表(选项C),列表的末尾需要添加空字符`\0`来标识字符串的结束。
大学c语言期末考试题及答案
大学c语言期末考试题及答案一、选择题(每题2分,共20分)1. 下列关于C语言的描述中,错误的是:A. C语言是一种高级语言B. C语言的执行方式是编译执行C. C语言支持面向对象编程D. C语言具有丰富的库函数答案:C2. 在C语言中,用于定义一个结构体的关键字是:A. structB. unionC. enumD. typedef答案:A3. 下列关于数组的描述中,正确的是:A. 数组必须在定义时初始化B. 数组的下标从1开始C. 数组可以存储不同类型的数据D. 数组的大小在定义后不能改变答案:D4. 在C语言中,用于文件操作的库函数是:A. printfC. fopenD. getchar答案:C5. 下列关于指针的描述中,错误的是:A. 指针可以存储变量的地址B. 指针可以作为函数的参数C. 指针可以被赋值为NULLD. 指针可以存储函数的地址答案:D6. 在C语言中,用于定义一个函数的关键字是:A. functionB. defC. voidD. int答案:B7. 下列关于循环的描述中,错误的是:A. for循环可以嵌套使用B. while循环可以和break语句一起使用C. do-while循环至少执行一次D. 循环体内不能使用continue语句答案:D8. 在C语言中,用于定义一个宏的预处理命令是:B. #includeC. #pragmaD. #import答案:A9. 下列关于函数的描述中,错误的是:A. 函数可以有返回值B. 函数可以没有参数C. 函数可以没有返回值D. 函数可以没有定义答案:D10. 在C语言中,用于定义一个枚举类型的关键字是:A. enumB. structC. unionD. typedef答案:A二、填空题(每题2分,共10分)1. C语言中,用于定义一个整型变量的关键字是____。
答案:int2. 在C语言中,表示逻辑与运算的运算符是____。
答案:&&3. 当需要在C语言中表示一个常量时,可以使用关键字____。
西南大学2021年《C语言程序设计》期末试题及答案
一、单项选择题. ( A )是构成C语言程序的基本单位。
A、函数B、过程C、子程序D、子例程. C语言程序从C开始执行。
A)程序中第一条可执行语句B)程序中第一个函数0程序中的main函数D)包含文件中的第一个函数3、以下说法中正确的是(C )。
A、C语言程序总是从第一个定义的函数开始执行B、在C语言程序中,要调用的函数必须在main ()函数中定义C、C语言程序总是从main()函数开始执行D、C语言程序中的main ()函数必须放在程序的开始部分.下列关于C语言的说法错误的是(B )。
A)C程序的工作过程是编辑、编译、连接、运行B)C语言不区分大小写。
C)C程序的三种基本结构是顺序、选择、循环D)C程序从main函数开始执行.下列正确的标识符是(C )。
A. -alB. a[i]C. a2_iD. int t5〜8题为相同类型题考点:标识符的命名规则(1)只能由字母、数字、下划线构成(2)数字不能作为标识符的开头(3)关键字不能作为标识符选项A中的“-”,选项B中“与”不满足(1);选项D中的int为关键字,不满足(3).下列C语言用户标识符中合法的是(B )。
A) 3ax B) x C) caseD) -e2E) union选项A中的标识符以数字开头不满足(2);选项C, E均为为关键字,不满足(3);选项D中的”不满足(1);.下列四组选项中,正确的C语言标识符是(C )oA) %xB) a+b C) al23D) 123选项A中的“犷',选项B中“ + ”不满足(1);选项D中的标识符以数字开头不满足(2)9.ttinclude <stdio. h>main(){ int num, c;scanf&num);do {c=num%10; printf c); }while((num/=10)>0);printf ('\n");)从键盘输入23,则运行结果为:32详见教材P117循环结构;p60复合的赋值运算符do {} while (表达式);先无条件执行循环体,再判断循环条件。
大学c语言考试题及答案
大学c语言考试题及答案一、选择题(每题2分,共20分)1. 下列关于C语言中变量的描述,正确的是:A. 变量名必须以字母开头B. 变量名可以包含空格C. 变量名区分大小写D. 变量名可以以数字开头答案:C2. 在C语言中,用于定义一个整型变量的关键字是:A. intB. floatC. doubleD. char答案:A3. C语言中,用于表示逻辑“与”的运算符是:A. &&B. ||C. !D. =答案:A4. 下列哪个选项是C语言中的合法常量?A. 0x1AB. 1.2.3C. 123abcD. 0b1010答案:A5. 在C语言中,以下哪个函数用于将字符串转换为浮点数?A. atoiB. atofC. itoaD. sprintf答案:B6. C语言中,以下哪个选项是正确的注释方式?A. // 这是注释B. /* 这是注释 */C. //* 这是注释 */D. /* 这是注释答案:A7. 在C语言中,以下哪个关键字用于定义一个函数?A. functionB. defC. voidD. int答案:C8. C语言中,以下哪个选项是正确的字符串定义方式?A. char str[] = "Hello";B. char str = "Hello";C. char str[] = 'Hello';D. char str[] = {"Hello"};答案:A9. C语言中,以下哪个选项是正确的数组定义方式?A. int array[5] = {0, 1, 2, 3, 4};B. int array[] = {0, 1, 2, 3, 4};C. int array[5] = {0, 1, 2};D. int array = {0, 1, 2, 3, 4};答案:A10. 在C语言中,以下哪个选项是正确的文件包含指令?A. #include <stdio.h>B. #import <stdio.h>C. #include "stdio.h"D. #include "stdio.h"答案:A二、填空题(每题2分,共10分)1. 在C语言中,使用________关键字可以定义一个结构体。
西南大学C语言网上作业复习题及答案
(2)
(3) 当x为其他值时, y=2x-1。
参考答案:
1、对于分段函数,使用if-else语句分情况求值即可
main()
{
int y,x;
scanf(“%d”,&x);
if (x<0)
y=-x;
else if (x<=10)
y=2*x-1;
else
y=3*x+5;
25、用while语句求1~100的累计和。
6、以下程序的输出结果是2,5,1,2,3,-2。
main()
{ int a = 3, b = 2, c = 1;
c -= ++b;
b *= a + c;
{ int b = 5, c = 12;
c /= b * 2;
a -= c;
printf(“%d, %d, %d, ”, a, b, c );
a += --c;
8、若有以下程序段:int a=3,b=4; a=a^b;b=b^a;a=a^b;则执行以上
语句后,a和b的值分别是a=4,b=3。
9、请写出以下程序的输出结果1。
main()
{ int a = 100;
if( a > 100) printf(“%d\n”, a > 100);
else printf(“%d\n”, a <= 100);
19、在定义int a[5][6];后,数组a中的第10个元素是.a[1][3](设a[0][0]为第一个元素).
20、若有定义:int a=7;float x=2.5,y=4.7;则表达式x+a%3*(int)(x+y)%2/4的值是2.500000
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
一、请判断下列说法的是否正确:(10分,每小题1分) (1)一个C程序由多个函数组成,且必须有一个main()函数,要求main( )函数必须放到最前面。
(x)(2)所有的变量在使用前都必须予以声明。
( v )(3)C的double类型数据可以精确表示任何实数。
( x )(4)a是一维数组名,数组元素a[1]还可以写作“*(a++)”。
( x ) (5)break语句只能用于switch语句和循环控制语句中。
( v ) (6)C语言中的数组下标从0开始,当引数组元素超过所定义的范围,将出来编译错误。
( x )(7)一个for循环语句,一定可以使用while语句来替换。
( v )(8)函数原型为“void sort(float a[], int n)”,调用该函数时,形参数组a被创建,实参数组各元素的值被复制到a数组各元素中。
( x )(9)一个结构类型的变量,在内存中占的字节数,为各成员数据类型所占内存的总和。
( v )例如:struct example{ int I;float f;char s[20];} x ;(10)、语句 y=*(p++); 和 y=(*p)++; 是等价的。
( x )二、填空(15分,每小题1分)(1) C语言的基本数据类型分为型、型、型和枚举型。
(2)、A不等于B在C语言中应使用表达式来表示。
(3)写出数学表达式a acb b242--对应的C表达式 ______________。
(4)写出判断字符变量ch是(’0’~’9’)数字符的C表达式 ________。
(5) 若s=’d’,执行语句s=(s>=’a’&&s<=’z’)?s-32:s;后,字符变量s的值为 __d__。
(6)int b=5;执行赋值表达式a=5+(b+=6) 后,a、b的值依次是_16___11_。
(7) 在C语言程序中,如果对函数f的类型未加显说明,则函数f的隐含类型是_int___。
(8)定义语为char a[10] ="john\0ni";,语句printf("%d",strlen(a));输出结果是__4________。
(9)所有的程序都可以用三种控制结构编写。
这三种控制结构是、和。
(10)要使a=10,b=20,c1=’A’,c2=’a’,x=1.5,y=-3.75,z=67.8,用下面的语句输入:scanf(“%5d%5d%c%c%f%f%*f,%f”,&a,&b,&c1,&c2,&x,&y,&z);键盘上输入数据的正确形式为:(11)函数调用时,若形、实参数均为数组,则其传递方式是______________。
(12)表达式(5==5==5)的值为____0__________。
(13)设int x[]={1,2,3,4},y,*p=&x[1]; 则执行语句y=(*- -p)++;后变量y 的值为__1_______。
(14)‘a’和“a”是有区别的,‘a’在内存中占_1___个字节,“a”在内存中占__2__个字节。
三、选择题(每题2分,共20分)(1)算法具有五个特性,以下选项中不属于算法特性的是( b )(A)有穷性 (B)简洁性( C)可行性 (D)确定性(2)以下选项中可作为C语言合法常量的是( b )(A)-80. (B)-080 (C)-8e1.0 (D)-80.0e(3)以下不能定义为用户标识符是( d )(A) Main (B)_0 (C) _int (D)sizeof(4)在下列各程序段中,没有构成死循环的是( a )(A)int i=100;(B) int y=1;while (1) for(; y<=10;y++){i=i%100+1; y- -;if(i=100) break;}(C)int k=1000; (D)int s=36;do{++k} while (k>=1000) ; while(s);- -s;(5)设变量定义为“int a[4]={1,3,7,9}, *p=a+2;”,则*p的值是( a )。
(A)7 (B)3 (C)4 (D)&a[0]+2 (6)下面程序段求两个数中的大数,( d )不正确。
(A)max =x>y?x:y; (B)if (x>y) max = x; else max=y;(C)max=x; (D)if (y>=x ) max=y;if (y>=x) max =y; max = x;(7)给出以下定义:char x[ ]="abcdefg";char y[ ]={'a','b','c','d','e','f','g'}; 则正确的叙述为 b(A)数组X 和数组Y 等价 (B) 数组X 的长度大于数组Y 的长度 (C)数组x 和数组Y 的长度相同 (D)数组X 的长度小于数组Y 的长度 (8))对于以下的变量定义,表达式___ ___是正确的。
struct node{ char s[10];int k; } p[4];(A )p->k=2 (B )p[0].s=“abc ” (C )p[0]->k=2 (D )p->s=‘a ’ (9)说明语句int (*p) ( ); 的含义是 c 。
A) p 是一个指向一维数组的指针变量B) p 是指针变量,它指向一个整型数据的指针C) p 是一个指向函数的指针变量,该函数的返回值为整型数 D) p 是一个指指针函数,该函数的返回值为指针值 (10)下列函数fun 的功能是 。
fun(char *s) {char *t=s; while(*t++) ; return (t-s-1); }A) 求两个串的长度差 B) 比较两个串的大小 C) 将串s 复制到串t 中D) 求s 所指向的字符串长度四、程序填空题(10空,每空2分,共20分)1.下程序是使用递减法求两自然数m 、n 的最大公约数。
void main() { int m,n, div;scanf(“%d,%d ”,&m,&n);div=m;if (n<m) _______(1)________; while ( m%div !=0 || n%div !=0 ) _______(2)________;printf ( “最大公约数=%d\n ”,div); }(1) (A) div=0; (B )div=n; (C ){div=m; m=n;n=div;} (D )m=n; (2) (A) div++; (B )++div; (C )div--; (D )div=m-n;s t2. 下面的程序是打印所有的水仙花数。
水仙花数是指一个3位数,其各位数字立方和等于该数本身。
如:153=13+53+33main(){ int i,temp,bai,shi,ge;printf("\n all the shuixianhuashu are:\n");for(i=100;i<1000;i++) /*三位数的范围:100~999*/{ bai=i/100, /*分别求出百位、十位、个位上的数字*/shi= ------(3)----- ;ge=i%10;temp=------(4)-------if(----(5)-------) printf("%5d",i);}}(3)(A) i/10 %10 (B)i%10/10(C)i-i\10*10 (D)(i-bai*100)%10(4)(A)bai^3+shi^3+ge^3 (B)bai*100+shi*10+ge (C)bai*bai*bai+shi*shi*shi+ge*ge*ge; (D)bai,shi,ge (5)(A) i==temp (B) i!=temp (C)i>=temp (D)i=temp 3.输入1 个正整数 n, 计算并输出 s 的前n项的和。
S = 1 -1/2 + 1/3 - 1/4 + 1/5 -1/6 + ……1/nvoid main( ){ int k, flag=1, n;float s;-----(6)----;scanf("%d", &n);for (k=1 ; k<=n; k++){ s=-----(7)----;-----(8)----;}printf("sum=%f\n", s);}(6)(A) n=0 (B) s=0(C)k=1 (D)printf(“Enter a number\n”)(7)(A) s+flag/n (B) s+1/k(C)s+1.0*flag/k(D)flag/k(8)(A) n++ (B) flag=-flag (C)flag++ (D)k++; 4. 函数sort使用选择法将一维整型数组中个元素按值从大到小排序。
void sort(int a[],int n){ int i,j,k ,temp;for(i=0;i<n-1;i++){ k=i;for(j=i+1;j<n;j++)if(-----(9)---- ) k=j;temp=a[k]; -----(10)---- ;}}(9)(A) a[i]>a[j] (B) a[j]>a[j+1] (C)a[k]>a[j] (D)a[k]<a[j](10)(A) a[k]=a[i]; a[i]=temp (B)a[i]=a[k]; a[k]=temp (C)flag++ (D)k++;五、程序阅读题(5小题,每题4分,共20分)(认真阅读程序,写出程序运行结果,注意输出数据的格式)(1)在执行以下程序时,如果从键盘上输入:ABC123def<回车>,则输出为:void main( ){ char ch;while((ch=getchar( ))!=’\n’){ if(ch>=’A’ && ch<=’Z’)ch=ch+32;else if(ch>=’a’ && ch<’z’)ch=ch-32;printf(“%c”,ch);}printf(“\n”);}2、下列程序的输出结果是。
main(){ int a[ ]={1,2,3,4},i,j,s=0;j=1;for (i=3; i>=0;i--){ s=s+a[i]*j;j=j*10;}printf(“s=%d\n”,s);}3、以下程序运行后的输出结果是f(int a){ auto b=0; static c=3; b=b+1;c=c+1;return(a+b+c); }main(){ int a=2,i;for( i=0; i<3; i++)printf(“%d ”, f(a)); }4、以下程序运行后的输出结果是#include "stdio.h"fun(char *w){char t,*s1,*s2;for (s1=w,s2=w+strlen(s1)-1;s1<s2;s1++,s2--){t=*s1;*s1=*s2;*s2=t;}}main(){char *p="12345";fun(p);puts(p);}5、以下程序的执行结果是。