ACM程序设计入门 考试题目(2)

2019-09-01 10:05

《ACM程序设计入门》 考试题目

90 90 90 90 90 样例输出:

1 1 85 95 90 90 90 90 3 1 90 90 90 90 90 90 2 3 80 75 80 85 80 80

源程序:

#include #include using namespace std ;

struct Node { friend bool operator<( Node a , Node b ) { return a.grade < b.grade ; } int grade; int sno ; } ;

int cmp( const void *a , const void*b ) { return ((Node*)a)->grade - ((Node*)b)->grade ; }

int main() { int n , m , **s , i , j , k , sum ; Node *avg ; while( cin >> n >> m ) { s = new int*[n] ; avg = new Node[n] ; for( i = 0 ; i < n ; i++ )

}

{ return 0 ;

sum = 0 ; }

s[i] = new int[m] ; 题目九:将给定的字符串放大显示。给定的数字为 for( j = 0 ; j < m ; j++ ) 0~9的一些数字的组合,将给定的数字放大后输出。 { 0到9的放大到4*5大小格式如下:

cin >> s[i][j] ; 0000 1222233334 455556666777788889999 sum += s[i][j] ; 0 0 1 2 34 45 6 78 89 9 } 0 0 122223333444455556666 788889999 avg[i].grade = sum / m ; 0 0 12 3 4 56 6 78 8 9 avg[i].sno = i ; 0000 122223333 455556666 788889999 } 输入:整数

输出:放大后的字符 qsort( (void*)avg , n , sizeof Node , cmp ) ; 样例输入: 0123456789 for( i = n-1 , k = 0 ; i >=0 ; i-- ) 3

{ 样例输出

cout << avg[i].sno+1 << ' ' << ( i == n-1 0000 1222233334 455556666777788889999 || avg[i].grade != avg[i+1].grade ? ++k : k ) << ' ' ; 0 0 1 2 34 45 6 78 89 9 0 0 122223333444455556666 788889999 for( j = 0 ; j < m ; j++ ) 0 0 12 3 4 56 6 78 8 9 cout << s[avg[i].sno][j] << ' ' ; 0000 122223333 455556666 788889999 3333 cout << avg[i].grade << endl ; 3 } 3333 3 delete []avg ; 3333 for( i = 0 ; i < n ; i++ )

delete[]s[i] ; 源程序:

delete[]s ;

#include

第6页 /共8页

《ACM程序设计入门》 考试题目

#include void SubLinePrint( int i , char num , int m )//n*m格式 { const int n = 4 , m = 5 ; using namespace std ; { int k ; switch( i ) /*

{ 0000 1 2222 3333 4 4 5555 6666 7777 8888 9999 case 0 : 0 0 1 2 3 4 4 5 6 7 8 8 9 for( k = 0 ; k < m ; k++ ) 9

cout << num ; 0 0 1 2222 3333 4444 5555 6666 7 8888 9999 break ; 0 0 1 2 3 4 5 6 6 7 8 8 case 1 : 9

for( k = 0 ; k < m ; k++ ) 0000 1 2222 3333 4 5555 6666 7 8888 if( k == 0 || k == m-1 ) 9999 cout << num ;

else cout << ' ' ; **** break ; * * case 2 : **** for( k = 0 ; k < m ; k++ ) * * if( k == m-1 ) **** cout << num ; else cout << ' ' ; 0 :**** break ; 1 :* * case 3 : 2 : * for( k = 0 ; k < m ; k++ ) 3 :* if( k == 0 ) cout << num ; */

else cout << ' ' ; int temp[10][5] = { {0,1,1,1,0},{2,2,2,2,2}, break ; {0,2,0,3,0},{0,2,0,2,0},{1,1,0,2,2},

} {0,3,0,2,0},{0,3,0,1,0},{0,2,2,2,2},{0,1,0,1,0},{0,1,0,2,0} }} ;

int main()

第7页 /共8页

char ch[100] ; int i , j , len ; while( gets( ch ) ) { len = strlen( ch ) ; for( i = 0 ; i < m ; i++ ) { for( j = 0 ; j < len ; j++ ) { SubLinePrint( temp[ch[j]-'0'][i] , ch[j] , m ) ; cout << ' ' ; } cout << endl ; } } return 0 ; }

题目十:给定6个整数,通过合理的+-*/()运算来得到预期的结果。编程求出表达式。 输入:6个整数和目标数 输出:四则运算的表达式 样例输入: 3 26 78 12 17 30

样例输出: 30: ((((26*3)+78)/12)+17 源程序:

#include #include

《ACM程序设计入门》 考试题目

using namespace std ; char op[5] = \ bool used[5] ;

void print( char temp[] , int num[] , int answer ) { cout << answer << \ for( int i = 0 ; temp[i] ; i++ ) { if( i%2 == 0 ) { cout << num[temp[i]-'0'] ; if( i && temp[i+1] ) cout << \ } else cout << temp[i] ; } cout << endl ; }

void Explore( char temp[] , int num[] , int index result , int answer )// index : 2 4 6 8 { if( index <= 8 ) { int t; for( int i = 0 ; i < 5; i++ ) { if( !used[i] ) {

, int == 8 )

answer ) ;

t= result ;

return ; for( int j = 0 ; j < 4 ; j++ ) } { Explore( temp , num, index+2 , result = t ; result , answer ) ; switch( j ) used[i] = false ; { case 0 : } result += num[i] ; } break ; } case 1 : } result -= num[i] ; }

break ; int main() case 2 : { result *= num[i] ; char temp[50] ; break ; int num[6] ; case 3 : if( result %num[i] == 0 ) memset( used , false , sizeof used ) ; result /= num[i] ; for( int i = 0 ; i < 6; i++ ) else continue ; cin >> num[i] ; break ; for( i = 0 ; i < 5 ; i++ ) } { used[i] = true ; temp[0] = '0'+i ; temp[index] = '0'+i ; used[i] = true ; temp[index-1] = op[j] ; Explore( temp , num, 2 , num[i] , num[5] ) ;// if( result == answer && index 从第2个数( operator num[x] )且x不重复,第一个数为num[i] { used[i] = false ;

temp[index+1] = '\\0' ; }

print( temp , num , return 0 ;

}

第8页 /共8页


ACM程序设计入门 考试题目(2).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:2010-2011-2物理教学论B

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: