下列代码取出一个整数的千位数字。请完善以下代码:int n = 9175023; int m = __(1 )__; Console.WriteLine(m);
第1题:
阅读以下函数说明和C语言函数,将应填入(n)的字句写在答题纸的对应栏内。
[说明1]
函数int fun1(int m, int n)的功能是:计算并返回正整数m和n的最大公约数。
[函数1]
int fun1(int m, int n)
{
while ((1)) {
if (m>n) m=m-n;
else n=n-m;
}
(2);
}
[说明2]
函数long fun2(char*str)的功能是:自左至右顺序取出非空字符串str中的数字字符形成一个十进制整数(最多8位)。
例如,若字符串str的值为“f3g8d5.ji2e3p12fkp”,则函数返回值为3852312。
[函数2]
long fun2(char *str)
{
int i=0;
long k=0;
char *p=str;
while (*p!='\0' &&(3)) {
if (*p>='0' && *p<='9') {
k=(4)+ *p - '0';
++i;
}
(5);
}
return k;
}
第2题:
请编写一个函数void fun(int m, int k, int xx[]),该函数的功能是将大于整数m且紧靠m的k个非素数存入所指的数组中。
例如,若输入15,5,则应输出16,18,20,21,22。
注意:部分源程序给出如下。
请勿改动主函数main和其他函数中的任何内容,仅在函数fun的花括号中填入所编写的若干语句。
试题程序:
include<conio.h>
include<stdio.h>
void fun(int m,int k,int xx[])
{
}
main()
{
int m,n,zz[1000];
clrscr();
printf("\nPlease enter two integers:");
scanf("%d%d",&m,&n);
fun(m,n,zz);
for(m=0;m<n;m++)
printf("%d",zz[m]);
printf("\n");
}
第3题:
阅读以下说明和Java代码,回答问题1和问题2,将解答填写在对应栏内。
【Java代码】
class usethread implements (1) {
int num
usethread(int n){
num=n;
}
public void (2) {
for(int i=0;i<3;i++)
System.out.println("running:"+num);
System.out.println("finished:"+num);
}
public class multhread{
public static void main(String args[]) (3) InterruptedException{
Thread m1=new Thread(new usethread(1));
Thread m2=new Thread(new usethread(2));
m1.start();
m2.start();
m1.join();
m2.join();
}
}
【问题1】
补充完整上面Java代码中(n)处。
【问题2】
写出上面Java代码运行的结果。
第4题:
阅读以下说明和C程序代码,将应填入(n)处的字句写在对应栏内。
【说明】
下面C程序代码的功能是:对于输入的一个正整数n(100≤n<1000),先判断其是否是回文数(正读反读都一样的数)。若不是,则将n与其反序数相加,再判断得到的和数是否为回文数,若还不是,再将该和数与其反序数相加并进行判断,依此类推,直到得到一个回文数为止。例如,278不是回文数,其反序数为872,相加后得到的1150还不是回文数,再将1150与其反序数511相加,得到的1661是回文数。
函数int isPalm(long m)的功能是:将正整数m的各位数字取出存入数组中,然后判断其是否为回文数。若m是回文数则返回1,否则返回0。
【C程序代码】
include <stdio.h>
include <stdlib.h>
int isPalm(long m)
{ /*判断m是否为回文数*/
int i = 0, k = 0;
char str[32];
while (m > 0) { /*从个位数开始逐个取出m的各位数字并存入字符数组str*/
str[k++] =(1)+ '0';
m = m / 10;
}
for(i = 0; i < k/2; i++) /*判断str中的k个数字字符序列是否是回文*/
if ( str[i] != str[(2)] ) return 0;
return 1;
}
int main ( )
{
long n, a, t;
printf("input a positive integer:"); scanf("%ld",&n);
if (n < 100 || n > =1000) return -1 ;
while((3)) { /*n不是回文数时执行循环*/
printf("%ld-> ", n);
for(a = 0, t = n; t > 0; ) { /*计算n的反序数并存入a*/
a =(4)*10 + t % 10; t = t / 10;
} /*end of for*/
n =(5); /*与反序数求和*/
} /*end of while*/
printf ("%id\n",n);
system("pause"); return 0;
}
第5题:
有以下程序 #include<stdio.h> void f(int *p,int *q); main() { int m=1,n=2,*r=&m; f(r, &n); printf("%d,%d",m,n); } void f(int*p,int*q) {p=p+1; *q=*q+1;) 程序运行后的输出结果是______。
A.1,3
B.2,3
C.1,4
D.1,2
第6题:
下面程序的功能是求整数m、n的最大公约数,请填空。
main()
{ int m,n,r;
scanf("%d,%d",&m,&n);
if(【 】){r=m;m=n;n=r;)
while(【 】)
{ r=m%n;m=n;n=r; }
printf("%d",m);
}
第7题:
阅读以下程序: #include<iostream.h> class kk { int m; public: static int n; kk() { m=0; 1 void setvalue() { m++; n++; } void output() { cout<<"m="<<m<<",n="<<n<<endl; } }; int kk::n; void main() { kk obj1,obj2; obi1.Setvalue(); obj1.output(); obj2.setValue(); Obj2.output(); } 该程序的执行结果是( )。
A.m=1,n=1
B.m=l,n=l m=1,n=1 m=1,n=2
C.m=1,n=1
D.m=1,n=1 m=2,n=1 m=2,n=2
第8题:
有以下程序: int m=1; void fun(int *n) { static int m=2; *n*=m-1; m+=2; } main() { int i; for(i=1;i<4;i++) { fun(&m); printf("%d",m); } } 程序的输出结果是( )
A.1317
B.2630
C.1315
D.1111
第9题:
试题二(共 15 分)
阅读以下说明和 C 程序代码,将应填入 (n) 处的字句写在答题纸的对应栏内。
[说明]
下面 C 程序代码的功能是:对于输入的一个正整数 n(100≤n<1000) ,先判断其是否是回文数(正读反读都一样的数) 。若不是,则将 n 与其反序数相加,再判断得到的和数是否为回文数,若还不是,再将该和数与其反序数相加并进行判断,依此类推,直到得到一个回文数为止。例如,278 不是回文数,其反序数为 872,相加后得到的 1150还不是回文数,再将 1150 与其反序数 511 相加,得到的 1661 是回文数。 函数 int isPalm(long m)的功能是:将正整数 m的各位数字取出存入数组中,然后判断其是否为回文数。若 m是回文数则返回 1,否则返回 0。
[C 程序代码]
#include <stdio.h>
#include <stdlib.h>
int isPalm(long m)
{ /*判断 m是否为回文数*/
int i = 0, k = 0;
char str[32];
while (m > 0) { /*从个位数开始逐个取出 m的各位数字并存入字符数组 str*/
str[k++] = (1) + '0';
m = m / 10;
}
for(i = 0; i < k/2; i++) /*判断 str中的 k 个数字字符序列是否是回文*/
if ( str[i] != str[ (2) ] ) return 0;
return 1;
}
int main( )
{
long n, a, t;
printf("input a positive integer:"); scanf("%ld",&n);
if (n < 100 || n > =1000) return -1 ;
while( (3) ) { /*n 不是回文数时执行循环*/
printf("%ld -> ", n);
for(a = 0, t = n; t > 0; ) { /*计算 n 的反序数并存入 a*/
a = (4) *10 + t % 10; t = t / 10;
} /*end of for*/
n = (5) ; /*与反序数求和*/
} /*end of while*/
printf("%ld\n",n);
system("pause"); return 0;
}
第10题:
第11题:
请写出下列代码段的运行结果 int i=1,n=-1; if(i==0); n=100; Console.Write(n);
第12题:
第13题:
给出下列代码,如何使成员变量m被方法fun( )直接访问?Class Test{private int m;public static void fun( ){} }
A.将private int m改为protected int m
B.将private int m改为public int m
C.将private int m改为static int m
D.将private int m改为int m
第14题:
阅读以下说明和C++程序,将应填(n)处的字句写在对应栏内。
[说明]
设计一程序,输入10个整数到一个数组中,调整这10个数在数组中的位置,使得其中最小的一个数成为数组的首元素,最大的一个数成为数组的末元素。
[C++程序]
include <iostream.h>
define SIZE 10
void main ( )
{
int data [SIZE];
int m;
cout<<"请输入"<<SIZE<<"个整数:";
for ( m=0;m<SIZE; m++ ) (1);
int j=0,k=0;
for ( int i=1;i<SIZE; i++ )
if ((2)) j=i;
else if ( data[i]<data[k] ) (3);
if (j>0 ) {
int d=data[0];
(4);
data[k]=d;
}
if ( k<SIZE-1 )
{
int d=data [SIZE- 1 ];
data[SIZE- 1 ]=data[j];
(5);
}
cout<<end1<<" 排序后: ";
for ( m=0;m<SIZE; m++ ) cout<<data[m]<<" " ;
}
第15题:
给出下列代码,如何使成员变量m被方法fun( )直接访问? class Test{ private int m; public static void fun( ){ … } }
A.将private int m改为protected int m
B.将private int m改为public int m
C.将private int m改为static i
D.将private int m改为int m
第16题:
以下程序的功能是调用函数fun计算m=1-2+3-4+…+9-10,并输出结果,请填空。int fun( int n){ int m=0,f=1,i; for(i=1;i<=n;i++) { m+=i*f; f=-f; } return m;}main{ printf("m=%d\\n",); }
第17题:
有以下程序
include<stdio.h>
int*f(int*p,int*q);
main( )
{int m=1,n=2,*r=&m;
r=f(r,&n);printf(”%d\n”,*r);
}
int-f(int*P,int*q)
(return(*p>*q)?p:q;)
程序运行后的输出结果是______。
第18题:
阅读以下说明及C++程序代码,将应填入(n)处的语句写在对应栏内。
【说明】
本程序的功能是实现任意两个大整数的乘法运算,例如:
输入整数1:8934793850094505800243958034985058
输入整数2:234584950989689084095803583095820923
二者之积:
209596817742739508050978890737675662366433464256830959194834854876 8534
【C++代码】
include<iostream.h>
const int MAXINPUTBIT=100;
const int MAXRESULTBIT=500;
class LargeNumber{
int i,j;
int temp;
int one[MAXINPUTBIT+1];
int onebit; //one的位数
int two[MAXINPUTBIT+1];
int twobit; //two的位数
int result[MAXRESULTBIT+1];
public:
LargeNumber();
~LargeNumber();
int inputone(); //出错返叫0,否则返回1
int inputtwo(); //同上
void multiplication(); //乘
void clearresult(); //清零
void showresult(); //显示
};
LargeNumber∷LargeNumber()
{
for(i=0;i<=MAXINPUTBIT;i++)
{
one[i]=0;
two[i]=0;
}
nebit=0;
twobit=0;
inputone();
inputtwo();
}
LargeNumber∷~LargeNumber()
{
}
int LargeNumber∷inputone()
{
char Number[MAXINPUTBIT+1];
cout<<"Please enter one:";
cin>>Number;
i=0;
j=MAXINPUTBIT;
while(Number[i]!='\0')
i++;
nebit=i;
for(i--;i>=0;i--,j--)
{
if(int(Number[i])>=48&&int(Number[i])<=57)
(1); //由字符转换为数字
else
return 0;
}
return 1;
}
int LargeNumber∷inputtwo()
{
char Number[MAXINPUTBIT+1];
cout<<"Please enter two:";
cin>>Number;
i=0;
j=MAXINPUTBIT;
while(Number[i]!='\0')
i++;
twobit=i;
for(i--;i>=0;i--,j--)
{
if(int(Number[i])>=48&&int(Number[i])<=57)
two[j]=int(Number[i]-48); //由字符转换为数字
else
return 0;
}
return 1;
}
void LargeNumber∷multiplication() //乘法
{
clearresult();
int m;
for(i=MAXINPUTBIT;i>=0;i--)
{
temp=two[i];
for(j=(2),m=MAXINPUTBIT;m>=0;m--,j--)
{
result[j]+=temp*one[m];
if(result[j]>9)
{
result[j-1]+=result[j]/10;
(3);
}
}
&n
第19题:
下列程序的输出结果为【 】。
inelude<iostream. h>
int &max(int &x, int &y)
{return (x>y? x: y); }
void main() {
int n=3, m=12;
max(m, n)++
cout<<"m="<<m<<", n= "<<n<<end1;
}
第20题:
阅读以下代码,回答问题:1至问题3 ,将解答填入答题纸的对应栏内。 【代码1】 include<stdio.h > void swap(int x, int y) { int tmp =x; x= y; y= tmp; } int maim() { int a= 3, b= 7; printf("a1= %d b1=%d\n",a,b); Swap( a, b); Printf("a2 = %d b2=%d\n”,a,b); return 0; } 【代码2】 include<stdio.h> define SPACE " //空格字符 Int main() { char str[128] =" Nothing is impossible! "; int i,num =0,wordMark=0; for(i=0;str[i];i++) If(str[i]==SPACE) WordMark=0; else If(wordMark=0){ wordMark=1; num++; } Printf(“%d/n”,num) return 0; } 【代码3】 include<stdio.h> define SPACE " //空格字符 int countStrs(char *); int main() { char str[128] = " Nothing is impossible! "; Printf("%d/n",(1)(str)) return 0; } int countStrs(char *p) { int num=0, wordMark= 0; for(;(2); p++) { If((3)==SPACE) wordMark= 0; else if( !wordMark ) { wordMark = 1; ++num } } return (4) ; }
【问题1】(4分) 写出代码1运行后的输出结果。 【问题2】(3分) 写出代码2运行后的输出结果。 【问题3】(8分) 代码3的功能与代码2完全相同,请补充3中的空缺,将解答写入答题纸的对应栏内。
第21题:
第22题:
对于下列代码段,执行后输出结果是()。 int n,m; int[] a=new int[5]; n=10; m=10; try{ for(inti=0;i<=a.Length;i++); a[i]=i; n=1/(n-m); } catch(DivideByZeroExceptione1){ Console.WriteLine(“产生零除异常!”); } catch(IndexOutOfRangeExceptione2) { Console.WriteLine(“产生数组访问越界异常!”); }
第23题:
下列程序的运行结果是()。 classprogram { staticvoidFunc(inta,outintx,outinty) { x=a/10; y=a%10; } staticvoidMain() { int m=35; int a,b; Func(m,outa,outb); Console.WriteLine("{0},{1}",a,b);
第24题: