10
16
29
30
第1题:
若下面程序运行时输出结果为
1, A, 10.1
2, B, 3.5
请将程序补充完整 。
#include
using namespace std;
int main()
{
void test(int, char,double 【 8 】 );
test(1,'A',10.1);
test(2,'B');
return 0;
}
void test(int a, char b, double
C .
{
cout<
}
第2题:
考虑函数原型void test(int a,int b=7,char z=‘*’),下面的函数调用中,属于不合法调用的是( )。
A.test(5);
B.test(5,8);
C.test(6,’#’);
D.test(0,0,’x’);
第3题:
试题三(共 15分)
阅读以下说明、C函数和问题,将解答写入答题纸的对应栏内。
【说明 1】
函数test_f1(int m, int n)对整数 m、n进行某种运算后返回一个整数值。
【C函数 1】
int test_f1(int m, int n)
{ int k;
k = m > n ? m : n;
for(;(k%m!=0) || (k%n!=0);k++);
return k;
}
【问题 1】(5分)
(1)请写出发生函数调用test_f1(9,6)时,函数的返回值;
(2)请说明函数test_f1的功能。
【说明 2】
设在某 C 系统中为每个字符分配 1 个字节,为每个指针分配 4 个字节,sizeof(x)计算为x分配的字节数。
函数test_f2()用于测试并输出该C系统为某些数据分配的字节数。
【C函数 2】
void test_f2( )
{ char str[] = "NewWorld"; char *p = str; char i = '\0';
void *ptr = malloc(50);
printf("%d\t", sizeof(str)); printf("%d\n", sizeof(p));
printf("%d\t", sizeof(i)); printf("%d\n ", sizeof(ptr));
}
【问题 2】(4分)
请写出函数test_f2()的运行结果。
【说明 3】
函数 test_f3(char s[])的功能是:将给定字符串 s 中的所有空格字符删除后形成的串
保存在字符数组tstr中(串s的内容不变),并返回结果串的首地址。
【C函数 3】
char *test_f3 (const char s[])
{ char tstr[50]={'\0'}; unsigned int i, k = 0;
for(i=0; i<strlen(s); i++)
if (s[i] != ' ') tstr[k++] = s[i];
return tstr;
}
【问题 3】(6分)
函数test_f3()对返回值的处理有缺陷,请指出该缺陷并说明修改方法。
试题三参考答案
【问题1】
(1)18 (3分)
(2)求两个整数的最小公倍数 (2分)
考生解答含义与最小公倍数相同即可给分
【问题2】
9 4 (2分,每个数字1分)
1 4 (2分,每个数字1分)
【问题3】
缺陷:返回了局部数据(或变量,或数组)的指针(或地址) (3分)
考生解答与上述含义相同即可给分
修改方法:用malloc(或realloc)函数申请局部变量(或数组) (3分)
考生解答中含有“动态”或“堆区”一词或者即可给分
第4题:
考虑函数原型void test(int a,int b=7,char="*"),下面的函数调用中,属于不合法调用的是()
A: test(5)
B: test(5,8)
C: test(6,"#")
D: test(0,0,"*")
第5题:
若下面程序运行时输出结果为
1,A,10.1
2,B,3.5
include <iostream>
using namespace std;
int main()
{
void test(int, char, doubie【 】);
test(1, 'A', 10.1 );
test(2, 'B');
return 0;
}
void test(int a, char b, double c)
{
cout<<a<<','<<b<<','<<c<<endl;
}
第6题:
已知程序中已经定义了函数test,其原型是int test(int,int,int);,则下列重载形式中正确的是
A.char test (int,int,int);
B.double test(int,int,double);
C.int test(int,int,int=O);
D.float test(int,int,float=3.5F);
第7题:
若有下面的说明和定义
struct test
{ int ml; char m2; float m3;
union uu {char ul[5]; int u2[2];} ua;
} myaa;
则sizeof(struct test )的值是
A.12
B.16
C.14
D.9
第8题:
若有下面说明和定义:struct test{ int m1;char m2;float m3;union uu(char u1[5];int u2[2];)ua;}myaa; 则sizeof(struct test)的值是( )。A)20 B)16C)14 D)9
第9题:
A.char a[5]; a="test";
B.char a[4]="test";
C.char a[4l; a = "test";
D.char a[5]="test”:
第10题:
下列代码中,将引起一个编译错误的行是( )。 1)public class Test{ 2) int m,n; 3) public Test(){} 4) public Test(int a){m=a;} 5) public static void main(String args[]){ 6) Test t1,t2; 7) int j,k; 8) j=0;k=0; 9) t1=new Test(); 10) t2=new Test(j,k); 11) } 12)}
A.第3行
B.第5行
C.第6行
D.第10行