المپدیا

دانش‌نامه‌ی المپیاد کامپیوتر ایران

ابزار کاربر

ابزار سایت


سوالات المپیاد:دوره ی تابستان:دوره ی ۲۱:برنامه نویسی:سوال ۱۲

سوال ۱۲

فرض کنید هر یک از برنامه‌های زیر در داخل یک تابع main() با includeهای مناسب نوشته شده‌اند. خروجی هر برنامه را بنویسید. اعداد ابتدای خط شماره خط هستند و تنها برای ارجاع راحت‌تر شما قرار داده شده‌اند. در صورتی که هر کدی خطای کامپایل/اجرا دارد آن را ذکر کرده، برطرف کرده، و سپس نتیجه رو بنویسید.

1.	  int x = 5 , *y = new int (10);
2.	  *y += 1;
3.	  x += *y;
4.	  y = &x;
5.	  *y += 10;
6.	  cout << x << " "<< y << endl;
1.	  int x = 0XDEADBEEF; 
2.	  // A Dead Beef Tastes Bitter!
3.	  int y = 010;
4.	  int z = x % y;
5.	  int w = 0XBAD;  
6.	  cout <<z<<" "<<(w&-1)<< endl;
1.	  int c = 0, d = 0;
2.	  for (int i=0; i<010; i++){
3.	    for (int j=0; j<8; j++)
4.	      if ((i|j) == (i^j))
5.		    c++;
6.	        d += c*c;
7.	  }
8.	  cout << d << endl;
1.	  char s[10];
2.	  strcpy(s, "bcdefg"); 
3.	  // a = (1100001) in ASCII
4.	  for(int i=1; i<strlen(s); i++){
5.	    s[i] |= s[i-1]; 
6.	    cout << s[i];
7.	    s[i+1] ^= s[i]; 
8.	  }
9.	  cout << endl;
1.	  struct st{
2.	    char c;
3.	    st(int v=0x0) {c=v^v;};
4.	  } ar[12];
5.	  for (int i=0; i<10; i++)
6.	    ar[i].c = 'A'|i;
7.	  char *p = new char[12];
8.	  p = (char *)&0x0[ar];
9.	  cout << p << " " << *p << endl;	
1.	vector<char *> v;
2.	bool f(int d, char *p) {
3.	  v.push_back(p);
4.	  return d?f(--d,++p):0;
5.	}
6.	
7.	int main() {
8.	  char s[] = "welcome";
9.	  f(5,s);
10.	  sort(v.begin(),v.end());
11.	  v[0][2] = 'h';
12.	  cout << v[2] << endl;
13.	  return 0;14.	}15.	

ابزار صفحه