爱迪国际C++章节测试-程序基本语句

*
1.填空题(8分)

阅读程序写结果:

#include <iostream>
using namespace std;

void swap(int & a, int & b)
{
int t;
t = a;
a = b;
b = t;
}

int main()
{
int a1, a2, a3, x;

cin>>a1>>a2>>a3;
if (a1 > a2)
swap(a1, a2);
if (a2 > a3)

swap(a2, a3);
if (a1 > a2)
swap(a1, a2);

 cin>>x;
if (x < a2)
if (x < a1)
cout<<x<<' '<<a1<<' '<<a2<<' '<<a3<<endl;
else

 cout<<a1<<' '<<x<<' '<<a2<<' '<<a3<<endl;
else
if (x < a3)

 cout<<a1<<' '<<a2<<' '<<x<<' '<<a3<<endl;
else
cout<<a1<<' '<<a2<<' '<<a3<<' '<<x<<endl;
return 0;
}

输入:
91 2 20
77
输出:_________

*
2.填空题

阅读程序写结果

#include<iostream>
using namespace std;

int main()
{

 int i,n,m,ans;
cin>>n>>m;
i=n;
ans=0;
while(i<=m){
ans+=i;

 i++;
}
cout<<ans<<endl;
return 0;
}


输入:10 20
输出:__________

3.填空题*
完善程序
(子矩阵)给输入一个n1×m1的矩阵a,和n2×m2的矩阵b,问a中是否存在子矩阵和b相等。若存在,输出所有子矩阵左上角的坐标:若不存在输出“There is no answer”。
#include<iostream>
using namespace std;
const int SIZE = 50;
int n1,m1,n2,m2,a[SIZE][SIZE],b[SIZE][SIZE];
int main()
{
int i,j,k1,k2;
bool good ,haveAns;
cin>>n1>>m1;
for(i=1;i<=n1;i++)
for(j=1;j<=m1;j++)
cin>>a[i][j];
 cin>>n2>>m2;
for(i=1;i<=n2;i++)
for(j=1;j<=m2;j++)
[ ① ];
 haveAns=false;
for(i=1;i<=n1-n2+1;i++)
for(j=1;j<= [ ② ];j++){
[ ③ ];for(k1=1;k1<=n2;k1++)
for(k2=1;k2<=[ ④ ] ;k2++){
if(a[i+k1-1][j+k2-1]!=b[k1][k2])
good=false;
}
if(good){
cout<<i<<' '<<j<<endl;
[ ⑤ ];
}
}
if(!haveAns) cout<<"There is no answer"<<endl;
return 0;
}
问题1:问题2:问题3:问题4:问题5:
*
4. 单 选题
下列程序中,正确计算1, 2, ⋯, 100 这 100 个自然数之和
的s u m(初始值为0)的是( ).
A. i = 1; do{ sum +=i; i++; }while(i<=100);
B. i = 1; do{ sum +=i; i++; }while(i > 100);
C. i = 1; while(i < 100){ sum+=i; i++; }
D. i = 1; while(i >= 100){ sum+=i; i++; }
*
5. 填空题

阅读程序写结果:

#include <iostream>
using namespace std;
int main()
{int a, b;

cin >> a >> b;
cout << a << "+" << b << "=" << a + b << endl;
}
输入: 3 5
输出:_______
*
6. 单 选题
设变量 x为float型且已赋值,则以下语句中能将 x中的数值保留到小数点后两位,
并将第三位四舍五入的是( ).
A. x = (x * 100) + 0.5 / 100.0;
B. x = (x * 100 + 0.5) / 100.0;
C. x = (int)(x * 100 + 0.5)/100.0;
D. x = (x / 100 + 0.5) * 100.0;
7. 填空题*
完善程序:
(最大子矩阵和)给出m行n列的整数矩阵,求最大的子矩阵和(子矩阵不能为空)。
输入第一行包含两个整数m和n,即矩阵的行数和列数。之后m行,每行n个整数,描述整个矩阵。程序最终输出最大的子矩阵和。
比如在如下这个矩阵中:
4 4
0 -2 -7 0
9 2 -6 2
-4 1 -4 1
-1 8 0 -2  
拥有最大和的子矩阵为:
9 2
-4 1
-1 8
 其和为15 
3 3
-2 10 20
-1 100 -2
0 -2 -3
最大子矩阵和为128
4 4
0 -2 -9 -9
-9 11 5 7
-4 -3 -7 -6
-1 7 7 5
 最大子矩阵和为26
#include <iostream>
using namespace std;
const int SIZE = 100;
int matrix[SIZE + 1][SIZE + 1];
int rowsum[SIZE + 1][SIZE + 1]; /* rowsum[i][j]记录第i行前j个数的和 */
int m, n, i, j, first, last, area, ans;int main()
{
cin >> m >> n;
for ( i = 1; i <= m; i++ )
for ( j = 1; j <= n; j++ )
cin >> matrix[i][j];ans = matrix ①;
for ( i = 1; i <= m; i++ )
②;
for ( i = 1; i <= m; i++ )
for ( j = 1; j <= n; j++ )
rowsum[i][j] = ③;for ( first = 1; first <= n; first++ )
for ( last = first; last <= n; last++ )
{
④;
for ( i = 1; i <= m; i++ ){
area += ⑤;
if ( area > ans )
ans = area;
if ( area < 0 )
area = 0;
}
}
cout << ans << endl;
return(0);
}
问题1:问题2:问题3:问题4:问题5:
8. 填空题( 14 分)*
反馈
完善程序:
(打印日历) 输入月份
m(1 ≤ m ≤ 12),按一定格式打印 2015 年第m 月的月历。
例如,2015 年 1 月的月历打印效果如下(第一列为周日):
#include <iostream>
#include <string>
using namespace std;
const int dayNum[] = {-1, 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31};
int m, offset, i;
int main()
{
 cin >> m;
cout << "S\tM\tT\tW\tT\tF\tS" << endl; /* '\t'为 TAB 制表符 */
①;
for (i = 1; i < m; i++)
offset = ②;
for (i = 0; i < offset; i++)
cout << '\t';
for (i = 1; i <= ③; i++)
{
cout << ④;if (i == dayNum[m] || ⑤ == 0)
cout << endl;
else
cout << '\t';
}
return (0);
}
问题1:问题2:问题3:问题4:问题5:
*
9. 填空题

阅读程序写结果:

#include <iostream>
using namespace std;
int main()
{
int max, min, sum, count = 0;
int tmp;
cin >> tmp;
if (tmp == 0)
return 0;
max = min = sum = tmp;count++;

while (tmp != 0)
{
cin >> tmp;
if (tmp != 0)
{
sum += tmp;
count++;
if (tmp > max)
max = tmp;
if (tmp < min)
min = tmp;
}
}输入: 1 2 3 4 5 6 0 7

输出: _________

10. 填空题
完善程序:*
(读入整数)请完善下面的程序,使得程序能够读入两个 int 范围内的整数, 并将这两个整数分别输出,每行一个。
输入的整数之间和前后只会出现空格或者回车。输入数据保证合法。
例如:
输入:
123 -789  
输出:
123
-789
 程序:
#include <iostream>
using namespace std;
int readint(){
int num = 0; // 存储读取到的整数
int negative = 0; // 负数标识
char c; // 存储当前读取到的字符
c = cin.get();
while ((c < '0' || c > '9') && c != '-')
c = ①;
if (c == '-')
negative = 1;
else
②;
c = cin.get();
while (③){
④;
c = cin.get();
}
if (negative == 1)
⑤;
return num;
}
int main()
{
int a, b;a = readint();
b = readint();
cout << a << endl
<< b << endl;
return 0;
}
问题1:问题2:问题3:问题4:问题5:
*
11. 单 选题
若有如下程序段,其中 abcc均已定义为整型变量,且 a、 c均已赋值( c大于0)
s=a;
for(b= 1; b<= c; b++)
s=s-1;
则与上述程序段功能等价的赋值语句是()
A. s=a-c;
B. s=a-b;
C. s=s-c;
D. s=b-c;
*
12. 单 选题
a
b
c均已定义为整型变量,且 a c 均已赋值 ( c 大于 0)。
A. s = a + b;
B. s = a + c;
C. s = s + c;
D. s = b + c;
问卷星提供技术支持
举报