2017年国家计算机二级题库3(C语言)
-
请补充函数fun(),该函数的功能是:把一个字符串中的字符(字母)按从小到大排序,并把这个全部由字母组成的字符串保存在原串中,函数返回这个字符串的长度。例如;输入“cixbr2.3”,如果为bcirx,字符串长度为5。
注意:部分源程序给出如下.
请勿改动主函数main和其他函数中的任何内容,仅在函数fun()的横线上填入所编写的若干表达式或语句。
#include <stdio.h>
#define N 20
int fun (char *str)
{
int i=0,j=0,k=-0,m=0;
char t;
char *p=str;
while(*p)
{
if((*p>='A'&&*p<='Z')||(*p>='a'
&&*p<='z'))
【 】
p++;
}
*(str+i)='\0';
【 】;
while(*(p+j))
{
k=j;
【 】;
while (*(p+k))
{
if(*(p+k)<*(str+m)
{
t=*(str+m);
*(str+m)=*(p+k);
*(p+k)=t;
}
k++;
}
j++;
}
return i; }
main()
{
char str[81];
iht n;
clrscr();
printf("Input the original string ");
gets(str);
printf("*** The Original string ***In");
puts(str);
printf("*** The nwe string ***\n");
n=fun(str);
puts(str);
printf("***The length of new string is:
%d***\n",n);
}
-
设有定义:float a=2,b=4,h=3;以下c语言表达式中与代数式
(a+B) h计算结果不相符的是( )。
- A.(a+B) *h/2
- B.(1/2)*(a+B) *h
- C.(a+B) *h*1/2
- D. h/2*(a+B)
-
请补充main函数,该函数的功能是:输入两个正整数numl和num2,求这两个数的最大公约和最小公倍数。
例如,若输入的两个正整数为12,4,则它们的最大公约数为12,最小公倍数为4。
注意:部分源程序给出如下。
请勿改动main函数和其他函数中的任何内容,仅在main函数的横线上填人所编写的若干表达式或语句。
试题程序:
#include
#include
void main
{
int a,b,numl,num2,t;
system("CLS"):
printf("\nInput two numbers:\n");
scanf("%d,%d",&numl,&num2);
if(numl
{
a=num2;
b=num1:
}
else
{
a=num1;
b=num2;
}
while(【1】)
{
t= 【2】
a=b;
b=t:
}
printf(“greatest common divisor:
%d\n",a);
printf("least common multiple:
%d\n", 【3】;
}
-
设有以下程序段
int x=0,s=0;
while(!x!=0)s+=++x;
printf("%d",s);
则
- A.运行程序段后输出0
- B.运行程序段后输出1
- C.程序段中的控制表达式是非法的
- D.程序段执行无限次
-
以下叙述中正确的是______。
- A.C语言比其他语言高级
- B.C语言可以刁;用编译就能被计算机识别执行
- C.C语言以接近英语国家的自然语言和数学语言作为语言的表达形式
- D.C语言出现的最晚,具有其他语言的一切优点
-
下面程序输出的结果是 main() { int x; x=-3+4*5-6;printf("%d",x); x=3+4%5-6;printf("%d",x); x=-3+4%6/5;printf("%d",x); x=(7+6)%5/2;printf("%d",x);}
- A.11 1 -3 1
- B.11 -3 2 1
- C.12 -3 2 1
- D.11 1 2 1
-
C 源程序中不能表示的数制是
- A.二进制
- B.八进制
- C.十进制
- D.十六进制
-
程序中若有如下说明和定义语句
char fun(char*);
main()
{
char*s="one",a[5]={0},(*f1)()=fun,ch;
.....
}
以下选项中对函数Fun的正确调用语句是 ______。
- A.(*f1)(a);
- B.*f1(*s);
- C.fun(&a);
- D.ch=*f1(s);
-
二进制数1110111.11转换成十进制数是 ( )
- A.119.375
- B.119.75
- C.119.125
- D.119.3
-
检查软件产品是否符合需求定义的过程称为()
- A. 确认测试
- B. 集成测试
- C. 验证测试
- D. 验收测试
-
以下程序的输出结果是 ( ) main( ) { static char a[10] ={"Chinese"}; printf("%d",strlen(a)); }
- A.7
- B.2
- C.9
- D.10
-
下列程序的输出结果是( )
main( )
{
int x=0,y=5,z=3;
while(z-->0&&++x<5)
y=y-1;
printf(“%d,%d,%d\n”,x,y,z);
}
- A.3,2,0
- B.3,2,-1
- C.4,3,-1
- D.5,-2,-5
-
下列程序的输出结果是( )。
#include
main
{ int a=0,i;
for(i=1;i<5;i++)
{ switch(i)
{ case 0:
case 3:a+=1;
case 1;
case 2:a+=2;
default:a+=3;
}
}
printf("%d",a);
}
- A.19
- B.1
- C.6
- D.8
-
拥有PC机并以拨号方式接入网络的用户需要配置 ( )
- A.CD-ROM
- B.Modem
- C.电话机
- D.鼠标
-
有以下程序: #include <stdio.h>void funl (char * p){ char * q; q=p; while( *q! ='\0') } (*q) ++;q++;}mains( ){ char a[ ] = { "Program" } , * p; p = &a[3]; fun1 (p); printf("% s \n" ,a);}程序执行后的输出结果是( )。
- A.Prohsbn
- B.Prphsbn
- C.Progsbn
- D.Program
-
有以下程序:
#include
void func(int n)
{ static int num=1);
num=num+n;printf("%d",num);
}
main( )
{ funo(3);func(4);printf("n"); }
程序运行后的输出结果是( )。
- A.4 8
- B.3 4
- C.3 5
- D.4 5
-
以下叙述中正确的是
- A.程序设计的任务就是编写程序代码并上机调试
- B.程序设计的任务就是确定所用数据结构
- C.程序设计的任务就是确定所用算法
- D.以上三种说法都不完整
-
下列程序的运行结果是( )。 #include<stdio.h> #define ADD(x) x+x main() { int m=1,n=2,k=3; int s=ADD(m+n)*k; printf("s=%d",s); }
- A.sum=18
- B.sum=10
- C.sum=9
- D.sum=25
-
下列叙述中正确的是( )。
- A.C语言中既有逻辑类型也有集合类型
- B.C语言中没有逻辑类型但有集合类型
- C.C语言中有逻辑类型但没有集合类型
- D.C语言中既没有逻辑类型也没有集合类型
-
有以下程序段: int n=0,p; do{scanf(“%d”,&p);n++;}while(p!=12345&&n<3); 此处do-while循环的结束条件是
- A.p的值不等于12345并且n的值小于3
- B.p的值等于12345并且n的值大于等于3
- C.p的值不等于12345或者n的值小于3
- D.p的值等于12345或者n的值大于等于3
-
程序中对fun函数有如下说明
void *fun( );
此说明的含义是:
- A.fun了数无返回值
- B.fun函数的返回值可以是任意的数据类型
- C.fun函数的返回值是无值型的指针类型
- D.指针fun指向一个函数,该函数无返回值
-
C语言中逻辑表达式的值为 ( )
- A.0或1
- B.非零值或者零值
- C.ture或false
- D.'ture'或者'false'
-
以下叙述中正确的是
- A.C 程序中的注释只能出现在程序的开始位置和语句的后面
- B.C 程序书写格式严格,要求一行内只能写一个语句
- C.C 程序书写格式自由,一个语句可以写在多行上
- D.用C语言编写的程序只能放在一个程序文件中
-
sizeof(float)是( )。
- A.一种函数调用
- B.一种函数定义
- C.一个浮点表达式
- D.一个整型表达式
-
设有表示学生选课的三张表,学生S(学号,姓名,性别,年龄,身份证号),课程C(课号,课名),选课SC(学号,课号,成绩),则表SC的关键字(键或码)为
- A.课号,成绩
- B.学号,成绩
- C.学号,课号
- D.学号,姓名,成绩
-
在计算机中,算法是指( )。
- A.加工方法
- B.解题方案的准确而完整的描述
- C.排序方法
- D.查询方法
-
设有定义:int n=0,*p=&n,**q=&p;则以下选项中,正确的赋值语句是( )。
- A.P=1
- B.*q=2;
- C.q=p;
- D.*p=5;
-
有定义语句:“int x,y;”,若要通过“scanf("%d,%d,&x,&y);”语句使变量x得到数值11,变量y得到数值12,下面四组输入形式中,错误的是
- A.11 12<回车>
- B.11, 12<回车>
- C.11,12<回车>
- D.11,<回车> 12<回车>
-
下列关于栈的描述中错误的是( )。
- A.栈是先进先出的线性表
- B.栈只能顺序存储
- C.栈具有记忆作用
- D.对栈的插入与删除操作中,不需要改变栈底指针
-
软件调试的目的是
- A.发现错误
- B.改正错误
- C.改善软件的性能
- D.验证软件的正确性