0% found this document useful (0 votes)
968 views7 pages

C12 Assignment (Predict The Output)

The document provides 30 code snippets and asks the reader to predict the output or identify errors. It notes that the code will be compiled using Turbo C/C++ under DOS on an x86 system.

Uploaded by

bookworm_shashi
Copyright
© Attribution Non-Commercial (BY-NC)
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as DOC, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
968 views7 pages

C12 Assignment (Predict The Output)

The document provides 30 code snippets and asks the reader to predict the output or identify errors. It notes that the code will be compiled using Turbo C/C++ under DOS on an x86 system.

Uploaded by

bookworm_shashi
Copyright
© Attribution Non-Commercial (BY-NC)
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as DOC, PDF, TXT or read online on Scribd
You are on page 1/ 7

C Questions

Note : All the programs are tested under Turbo C/C++ compilers.
It is assumed that,
 Programs run under DOS environment,
 The underlying machine is an x86 system,
 Program is compiled using Turbo C/C++ compiler.

Predict the output of the code segements below:

1. char *someFun()
{
char *temp = “string constant";
return temp;
}
int main()
{
puts(someFun());
}

2. main()
{
int a=10,*j;
void *k;
j=k=&a;
j++;
k++;
printf("\n %u %u ",j,k);
}
3. main()
{
char a[4]="HELL";
printf("%s",a);
}

4. main()
{
char a[4]="HELLO";
printf("%s",a);
}
5. Is this code legal?(if yes then what it does)
int *p;
p = (int *) 0x400;

6. void main()
{
int i=10, j=2;
int *ip= &i, *jp = &j;
int k = *ip/*jp;
printf(“%d”,k);
}

7. char inStr[100] = {0};


To get string input from the keyboard which one of the following is better?Why?
1) gets(inStr)
2) fgets(inStr, sizeof(inStr), fp)

8.
void main()
{
printf(“sizeof (void *) = %d \n“, sizeof( void *));
printf(“sizeof (int *) = %d \n”, sizeof(int *));
printf(“sizeof (double *) = %d \n”, sizeof(double *));
printf(“sizeof(struct unknown *) = %d \n”, sizeof(struct unknown *));
}

9. Is the following code , legal and If yes then why?


struct a
{
int x;
struct a *b;
}

10. Is the following code legal? And if no why?


struct a
{
int x;
struct a b;
}

11. What is the hidden bug with the following statement?


assert(val++ != 0);
12. What is wrong with the following code?
int *foo()
{
int *s = malloc(sizeof(int)100);
assert(s != NULL);
return s;
}

13. What is the error in the following code ?


void funny(int n, int ar[])
{
int *p=0;
int i=0;
while(i++<n)
p = &ar[i];
*p = 0;
}

14. Is there any difference between the two declarations,


1. int foo(int *arr[]) and
2. int foo(int *arr[2])

15. There were 10 records stored in “sfile.dat” but the following program printed 11
names. What went wrong?
void main()
{
struct student
{
char name[30], rollno[6];
}stud;
FILE *fp = fopen(“sfile.dat”,”r”);
while(!feof(fp))
{
fread(&stud, sizeof(stud), 1 , fp);
puts(stud.name);
}
}

16. main()
{
struct date;
struct student
{
char name[30];
struct date dob;
}stud;
struct date
{
int day,month,year;
};
scanf("%s%d%d%d", stud.rollno, &student.dob.day, &student.dob.month,
&student.dob.year);
}

17. main()
{
struct student
{
char name[30];
struct date dob;
}stud;
struct date
{
int day,month,year;
};
scanf("%s%d%d%d", stud.rollno, &student.dob.day,
&student.dob.month, &student.dob.year);
}

18. #include <stdio.h>


main()
{
char * str = "hello";
char * ptr = str;
char least = 127;
while (*ptr++)
least = (*ptr<least ) ?*ptr :least;
printf("%d",least);
}

19. main()
{
int i=300;
char *ptr = &i;
*++ptr=2;
printf("%d",i);
}
20. main()
{
int i = 258;
int *iPtr = &i;
printf("%d %d", *((char*)iPtr), *((char*)iPtr+1) );
}

21. main()
{
int i = 257;
int *iPtr = &i;
printf("%d %d", *((char*)iPtr), *((char*)iPtr+1) );
}
22. what is the output of the code:

main()
{
void swap();
int x=10,y=8;
swap(&x,&y);
printf("x=%d y=%d",x,y);
}
void swap(int *a, int *b)
{
*a ^= *b, *b ^= *a, *a ^= *b;
}
23.
main()
{
static int a[3][3]={1,2,3,4,5,6,7,8,9};
int i,j;
static *p[]={a,a+1,a+2};
for(i=0;i<3;i++)
{
for(j=0;j<3;j++)
printf("%d\t%d\t%d\t%d\n",*(*(p+i)+j),
*(*(j+p)+i),*(*(i+p)+j),*(*(p+j)+i));
}
}
24.What is the output:
int DIM(int array[])
{
return sizeof(array)/sizeof(int );
}
main()
{
int arr[10];
printf(“The dimension of the array is %d”, DIM(arr));
}

25.
#define DIM( array, type) sizeof(array)/sizeof(type)
main()
{
int arr[10];
printf(“The dimension of the array is %d”, DIM(arr, int));
}
26.
main()
{
char *p="GOOD";
char a[ ]="GOOD";
printf("\n sizeof(p) = %d, sizeof(*p) = %d, strlen(p) = %d", sizeof(p),
sizeof(*p), strlen(p));
printf("\n sizeof(a) = %d, strlen(a) = %d", sizeof(a), strlen(a));
}

27. main()
{
int a=2,*f1,*f2;
f1=f2=&a;
*f2+=*f2+=a+=2.5;
printf("\n%d %d %d",a,*f1,*f2);
}

28. main()
{
extern i;
printf("%d\n",i);
{
int i=20;
printf("%d\n",i);
}
}
29. main()
{
float i=1.5;
switch(i)
{
case 1: printf("1");
case 2: printf("2");
default : printf("0");
}
}
30. main()
{
register int a=2;
printf("Address of a = %d",&a);
printf("Value of a = %d",a);
}

You might also like