c语言模拟考试题目,C语言模拟试题一

一、选择题(每小题各1.5分,共15分)

1.若x,y均定义为float型变量,则以下不合法的赋值语句是 。

A) ++x; B)y=(x%4); C) x*=y+5; D) x=y=0;

2.设有以下程序段

x=0;

while(printf(“*”))

{ x++;

if(x<10)break;

}

下面描述正确的是 。

A)其中循环控制表达式与0等价 B)其中循环控制表达式与’0’等价

B)其中循环控制表达式是不合法的 D)以上说法都不对

3.设有两个字符数组a、b,以下正确的输入语句是 。

A)gets(a,b); B)gets(“a” ),gets(“b” );

C)scanf(“%s%s”,&a,&b);

D)scanf(“%s%s”,a,b);

4.下列程序段的运行结果是 。

char a[]=“university” ,*p;

p=a;

while(*p!=’e’)

{ printf(“%c” ,*p-‘a’+’A’ );p++;}

A)UNIVERSITY B)university C)UNIV D)univERSITY

5.有以下说明和语句,则对stu中***域的正确引用方式是 。

struct student

{ char name[20];

int ***;

}stu,*p;

p=&stu;

A)(*p).*** B)p-> stu.*** C)(*p).stu.***

D)p.stu.***

6.下列程序的运行结果是 。

#include

void cal()

{extern int a, b;int x =15,y =10;

a=x-y;

b=x+y;

}

int a, b;

main()

{ int x=7 ,y=5 ;

a=x+y;

b=x-y;

cal();

printf(“%d,%d\n”,a,b);

}

A)5,25 B)12,2 C)1,12 D)不确定

7.下段程序要能对两个整型变量a、b的值进行交换,正确的说法是 。

main()

{ int a=50,b=100;

swap(&a,&b);

printf(“a=%d,b=%d\n”,a,b);

}

swap(int x,int y)

{ int t;

t=x;x=y;y=t;}

A)该程序完全正确

B)该程序有错,只要将语句swap(&a,&b);中的参数改为a,b即可

C)该程序有错,只要将swap()函数中的形参x和y以及变量t均定义为指针即可

D)以上说法都不正确

8.设a、b、c为整型变量,a=30,b=40,c=50,则下列表达式中值为0的是

A) !((a

C)a<=b D)’a’ && ‘b’

9.下列程序段的输出结果是 。

int a=3;

do { printf(“%d\n”,a-=2);} while(!(--a));

A)3和0 B)死循环,没有输出 C)1和-2 D)1

10.C语言中以下说法正确的是 。

A)实参和与其对应的形参共占用一个存储单元

B)形参是虚拟的,不占用存储单元

C)只有当实参和与其对应的形参同名时才共占用存储单元

D)实参和与其对应的形参各占用独立的存储单元

二、填空题(每小题各1.5分,共15分)

1.下列程序每行输出3个数据,请填空。

#define N 50

main()

{ int a[N],i;

for(i=0;i

for(i=0;i

{ if ( ) printf(“\n” );

printf(“%5d”,a );

}

}

2.下面程序实现在字符串a中下标值为偶数的元素由小到大排序,其它元素不变,请填空。

#include

main()

{ char a[]=“labchmfye” ,t;

int i,j;

for(i=0;i<7;i+=2)

for(j=i+2;j<9; )

if( )

{t=a;a=a[j];a[j]=t;j++;}

puts(a);

}

3.要使下列程序输出5,请填空。

#include

fun(char *s)

{ char *t=s;

while( ) t++;

return(t-s);

}

main()

{ char *a=“china” ;

printf(“%d” , fun(a)):

}

4.下列程序段将输出students,请填空。

char ch[]=“we are students” ;

int i,j;

for(i=0; ;i++)

{j=i+7;printf(“%c”,c[j]);}

5.下列程序段的运行结果是 。

char ch[]=“\t\v\\\0good\n” ;

printf(“%d”,strlen(ch));

6.下列程序段是输出两个字符串中对应相等的字符,请填空。

char x[]=“sfieugvsdasdfsad” ;

char y[]=“usidbhfsrygvvses” ;

int i;

while(x!=’\0’ && y!=’\0’)

if (x = = y) printf(“%c”, );

else i++;

7.能正确表示“当x的取值在[200,210]和[300,310]范围内为真,否则为假”的

表达式是 。

8.若int型变量a=21,则执行以下语句后a的值是 。

a+=a-=a+a;

三、阅读下列程序,写出运行结果(每题3分,共30分)

1.下列程序的运行结果是 。

#include

main ()

{ int i;

for(i=1;i<=5;i++)

{if(i%2) printf(“*” );

else continue;

printf(“#” );

}

printf(“$\n” );

}

2.在输入18并回车后,下列程序的运行结果是 。

main()

{ int x,y,i,j,u,v,a[8];

scanf(“%d”,&x);

y=x;i=0;

do

{ u=y/2;

a=y%2;

i++;y=u;

}while(y>=1);

for(j=i-1;j>=0;j--)

printf(“%d”,a[j]);

}

3. 下列程序的运行结果是 。

#include

main()

{ char str[]=“ASWWLIAHIRXNQ”,c;

int k;

for(k=2;(c=str[k])!=’\0’;k++)

{ switch(c)

{ case ‘L’:continue;

case ‘I’:++k;break;

default:putchar(c);continue;

}

putchar(’*’);

}

}

4. 下列程序的运行结果是 。

main ( )

{ int i, j;

static int a[10]={1,1,1,1,1,1,1,1,1,1};

for (i=0;i<10;i++)

for (j=0;j

a=a+a[j];

for (i=0;i<10;i++)

printf(“%d,”,a);

}

5. 下列程序的运行结果是 。

main ( )

{ int a=0, n=5;

for( ; ; )

{ a++; n--;

printf(“%d,”,a);

a=n;

if (n==0) break; }

printf(“%d” ,a); }

6. 下列程序的运行结果是 。

main ( )

{ static int a[10],i;

for (i=0;i<10;i++)

a=i+1;

for (i=0;i<10;i=i+2)

printf(“%d” ,*(a+i));

}

7.下列程序的运行结果是 。

#include

function(int a,int b)

{ static int t=0,i=2;

i+=t+1;

t=i+a+b;

return(t);

}

main()

{ int s=4,t=1,p;

p=function(s,t);printf(“%d,” ,p);

p=function(s,t);printf(“%d\n” ,p);

}

8. 下列程序的运行结果是 。

#include

x(char *p)

{ int i,j;

for(i=j=0;*(p+i)!=’\0’;i++)

if(*(p+i)>=’j’)

{ *(p+j)=*(p+i);j++;}

*(p+j)=’\0’;

}

main()

{ char ch[]=“dgfhjgyuhgf” ;

x(ch);

puts(ch);

}

9.以下函数经编译、连接后得到的执行文件为abc.exe,若在系统的命令状态下输入命令行:

abc anhui maanshan,则输出是 。

main(int argc,char *argv[])

{ while(argc>1)

{++argv;

printf(”%s\n”,*argv);

--argc;

}

}

10. 下列程序的运行结果是 。

struct a

{ double i;

char array[25];

};

main()

{ struct a b;

printf(“%d\n” ,sizeof(struct a));

}

四、编程题(共15分)

1.用递归法将一个位数不确定的整数n转换成字符串(如输入数字12345,应输出字符串“12345”

)。(

7分)

2.利用指向结构体的指针编制一个程序,实现输入五个学生的学号(num)、计算机期中成绩(mid)和期

末成绩(end),

然后计算其平均成绩(ave)并输出其成绩表。(8分)

一、选择题(每小题各1.5分,共15分)

1.若x,y均定义为float型变量,则以下不合法的赋值语句是 。

A) ++x; B)y=(x%4); C) x*=y+5; D) x=y=0;

2.设有以下程序段

x=0;

while(printf(“*”))

{ x++;

if(x<10)break;

}

下面描述正确的是 。

A)其中循环控制表达式与0等价 B)其中循环控制表达式与’0’等价

B)其中循环控制表达式是不合法的 D)以上说法都不对

3.设有两个字符数组a、b,以下正确的输入语句是 。

A)gets(a,b); B)gets(“a” ),gets(“b” );

C)scanf(“%s%s”,&a,&b);

D)scanf(“%s%s”,a,b);

4.下列程序段的运行结果是 。

char a[]=“university” ,*p;

p=a;

while(*p!=’e’)

{ printf(“%c” ,*p-‘a’+’A’ );p++;}

A)UNIVERSITY B)university C)UNIV D)univERSITY

5.有以下说明和语句,则对stu中***域的正确引用方式是 。

struct student

{ char name[20];

int ***;

}stu,*p;

p=&stu;

A)(*p).*** B)p-> stu.*** C)(*p).stu.***

D)p.stu.***

6.下列程序的运行结果是 。

#include

void cal()

{extern int a, b;int x =15,y =10;

a=x-y;

b=x+y;

}

int a, b;

main()

{ int x=7 ,y=5 ;

a=x+y;

b=x-y;

cal();

printf(“%d,%d\n”,a,b);

}

A)5,25 B)12,2 C)1,12 D)不确定

7.下段程序要能对两个整型变量a、b的值进行交换,正确的说法是 。

main()

{ int a=50,b=100;

swap(&a,&b);

printf(“a=%d,b=%d\n”,a,b);

}

swap(int x,int y)

{ int t;

t=x;x=y;y=t;}

A)该程序完全正确

B)该程序有错,只要将语句swap(&a,&b);中的参数改为a,b即可

C)该程序有错,只要将swap()函数中的形参x和y以及变量t均定义为指针即可

D)以上说法都不正确

8.设a、b、c为整型变量,a=30,b=40,c=50,则下列表达式中值为0的是

A) !((a

C)a<=b D)’a’ && ‘b’

9.下列程序段的输出结果是 。

int a=3;

do { printf(“%d\n”,a-=2);} while(!(--a));

A)3和0 B)死循环,没有输出 C)1和-2 D)1

10.C语言中以下说法正确的是 。

A)实参和与其对应的形参共占用一个存储单元

B)形参是虚拟的,不占用存储单元

C)只有当实参和与其对应的形参同名时才共占用存储单元

D)实参和与其对应的形参各占用独立的存储单元

--------------------------------------------------------------------------------

二、填空题(每小题各1.5分,共15分)

1.下列程序每行输出3个数据,请填空。

#define N 50

main()

{ int a[N],i;

for(i=0;i

for(i=0;i

{ if ( ) printf(“\n” );

printf(“%5d”,a );

}

}

2.下面程序实现在字符串a中下标值为偶数的元素由小到大排序,其它元素不变,请填空。

#include

main()

{ char a[]=“labchmfye” ,t;

int i,j;

for(i=0;i<7;i+=2)

for(j=i+2;j<9; )

if( )

{t=a;a=a[j];a[j]=t;j++;}

puts(a);

}

3.要使下列程序输出5,请填空。

#include

fun(char *s)

{ char *t=s;

while( ) t++;

return(t-s);

}

main()

{ char *a=“china” ;

printf(“%d” , fun(a)):

}

4.下列程序段将输出students,请填空。

char ch[]=“we are students” ;

int i,j;

for(i=0; ;i++)

{j=i+7;printf(“%c”,c[j]);}

5.下列程序段的运行结果是 。

char ch[]=“\t\v\\\0good\n” ;

printf(“%d”,strlen(ch));

6.下列程序段是输出两个字符串中对应相等的字符,请填空。

char x[]=“sfieugvsdasdfsad” ;

char y[]=“usidbhfsrygvvses” ;

int i;

while(x!=’\0’ && y!=’\0’)

if (x = = y) printf(“%c”, );

else i++;

7.能正确表示“当x的取值在[200,210]和[300,310]范围内为真,否则为假”的

表达式是 。

8.若int型变量a=21,则执行以下语句后a的值是 。

a+=a-=a+a;

三、阅读下列程序,写出运行结果(每题3分,共30分)

1.下列程序的运行结果是 。

#include

main ()

{ int i;

for(i=1;i<=5;i++)

{if(i%2) printf(“*” );

else continue;

printf(“#” );

}

printf(“$\n” );

}

2.在输入18并回车后,下列程序的运行结果是 。

main()

{ int x,y,i,j,u,v,a[8];

scanf(“%d”,&x);

y=x;i=0;

do

{ u=y/2;

a=y%2;

i++;y=u;

}while(y>=1);

for(j=i-1;j>=0;j--)

printf(“%d”,a[j]);

}

3. 下列程序的运行结果是 。

#include

main()

{ char str[]=“ASWWLIAHIRXNQ”,c;

int k;

for(k=2;(c=str[k])!=’\0’;k++)

{ switch(c)

{ case ‘L’:continue;

case ‘I’:++k;break;

default:putchar(c);continue;

}

putchar(’*’);

}

}

4. 下列程序的运行结果是 。

main ( )

{ int i, j;

static int a[10]={1,1,1,1,1,1,1,1,1,1};

for (i=0;i<10;i++)

for (j=0;j

a=a+a[j];

for (i=0;i<10;i++)

printf(“%d,”,a);

}

5. 下列程序的运行结果是 。

main ( )

{ int a=0, n=5;

for( ; ; )

{ a++; n--;

printf(“%d,”,a);

a=n;

if (n==0) break; }

printf(“%d” ,a); }

6. 下列程序的运行结果是 。

main ( )

{ static int a[10],i;

for (i=0;i<10;i++)

a=i+1;

for (i=0;i<10;i=i+2)

printf(“%d” ,*(a+i));

}

7.下列程序的运行结果是 。

#include

function(int a,int b)

{ static int t=0,i=2;

i+=t+1;

t=i+a+b;

return(t);

}

main()

{ int s=4,t=1,p;

p=function(s,t);printf(“%d,” ,p);

p=function(s,t);printf(“%d\n” ,p);

}

8. 下列程序的运行结果是 。

#include

x(char *p)

{ int i,j;

for(i=j=0;*(p+i)!=’\0’;i++)

if(*(p+i)>=’j’)

{ *(p+j)=*(p+i);j++;}

*(p+j)=’\0’;

}

main()

{ char ch[]=“dgfhjgyuhgf” ;

x(ch);

puts(ch);

}

9.以下函数经编译、连接后得到的执行文件为abc.exe,若在系统的命令状态下输入命令行:

abc anhui maanshan,则输出是 。

main(int argc,char *argv[])

{ while(argc>1)

{++argv;

printf(”%s\n”,*argv);

--argc;

}

}

10. 下列程序的运行结果是 。

struct a

{ double i;

char array[25];

};

main()

{ struct a b;

printf(“%d\n” ,sizeof(struct a));

}

四、编程题(共15分)

1.用递归法将一个位数不确定的整数n转换成字符串(如输入数字12345,应输出字符串“12345”

)。(

7分)

2.利用指向结构体的指针编制一个程序,实现输入五个学生的学号(num)、计算机期中成绩(mid)和期

末成绩(end),

然后计算其平均成绩(ave)并输出其成绩表。(8分

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值