• 欢迎您访问自学考试网!  今天是

微信咨询:  815747759

距 2020年 考试报名还有

距 2020年 考试日期还有

自考系统:

各市自考:

自考《c语言程序设计》模拟试题(4)

2021-02-02 23:17:15 来源:自学考试网 点击:9 作者:小呗老师

自考《c语言程序设计》模拟试题(4)

为了帮助广大自考考生顺利通过公共管理学科目,桓学网整理《c语言程序设计》模拟试题(4),《c语言程序设计》作为自考本科课程中比较难的科目,考生们可以通过多刷题型,多做题来抓取考试重点,快来跟随小编一起看看吧。

自考《c语言程序设计》模拟试题(4)

6.下面程序的功能是输出100以内的个位数为6、且能被3整除的所有数。

main()

{ int i,j;

for(i=0; ① ;i++)

{ j=i*10+6;

if( ② ) countinue;

printf( %d ,j);

}

}

7.下面程序的功能是用辗转相除法求两个正整数m和n的最大公约数。

hcf(int m,int n)

{ int r;

if(m<n)

{ r=m;

① ;

n=r;

}

r=m%n;

while( ② )

{ m=n;

n=r;

r=m%n;

}

③ ;

}

8.下面程序的功能是删除字符串s中的空格。

#include

main()

{ char *s= Beijing ligong daxue ;

int i,j;

for(i=j=0;s[i]!='\0';i++)

if(s[i]!= ' ') ① ;

else ② ;

s[j]= '\0';

printf( %s ,s);

}

9.下面程序的功能是显示具有n个元素的数组s中的最大元素。

#define N 20

main()

{ int i,a[N];

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

scanf( %d ,&a[i]);

printf( %d\n , ① );

}

fmax(int s[],int n)

{ int k,p;

for(p=0,k=p;p<n;p++)

if(s[p]>s[k]) ② ;

return(k);

}

10.下面的函数是一个求阶乘的递归调用函数。

facto(int n)

{ if( n == 1 ) ① ;

else return( ② );

}

11.用递归实现将输入小于32768的整数按逆序输出。如输入12345,则输出54321。

#include stdio.h

main()

{ int n;

printf( Input n : );

scanf( %d , ① );

r(n);

printf( \n );

}

r( int m )

{ printf( %d , ② );

m = ③ ;

if( ④ )

⑤ ;

}

12.下面函数的功能是将一个整数存放到一个数组中。存放时按逆序存放。例如:483存放成 384 。

#include

void convert(char *a, int n)

{ int i;

if((i=n/10) !=0 )

convert( ① , i );

*a = ② ;

}

char str[10]= ;

main()

{ int number;

scanf( %d , &number);

convert( str, number );

puts(str);

}

四、编写程序题

1.编写一个简单计算器程序,输入格式为:data1 op data2。其中data1和data2是参加运算的两个数,op为运算符,它的取值只能是+、-、*、/。

2.输入一个正整数,要求以相反的顺序输出该数。例如输入12345,输出位54321。

3.编写程序,以字符形式输入一个十六进制数,将其变换为一个十进制整数后输出。

4.编写程序,输入一个十进制整数,将其变换为二进制后储存在一个字符数组中。

5.编写程序,输出1000以内的所有完数及其因子。所谓完数是指一个整数的值等于它的因子之和,例如6的因子是1、2、3,而6=1+2+3,故6是一个完数。

6.编写一个函数实现将字符串str1和字符串str2合并,合并后的字符串按其ASCII码值从小到大进行排序,相同的字符在新字符串中只出现一次。

7.编写程序,从键盘输入一行字符串,将其中的小写字母全部转换成大写字母,然后输出到一个磁盘文件 test 中保存。

一、填空题

1、C语言中普通整型变量的类型说明符为______,在内存中占______字节,有符号普通整型的数据范围是______.

2、C语言中基本的数据类型有:______、______ 、______ .

3、设整型变量n的值为2,执行语句“n+=n-=n*n”后,n的值是______.

4、共用体和结构体的定义格式类似,不同点是______.

5、有如下输入语句:scanf(“a=%d,b=%d,c=%d”,&a,&b,&c);为使变量a的值为1,b的值为3,c的值为2,从键盘输入数据的正确形式应是______.

6、有语句:char A[ ]={“I am a student”};该字符串的长度是______,A[3]= ______.

7、符号“a”和‘a’的区别______.

8、下列程序的输出结果是______.

int ast(int x,int y,int * cp,int * dp)

{ *cp=x+y; *dp=x-y; }

main()

{ int a=4,b=3,c,d;

ast(a,b,&c,&d);

printf(“%d,%d/n”,c,d);}

二、选择题

1、以下选项中属于C语言的数据类型是( )。

A. 复合型 B. 双精度型 C. 逻辑型 D. 集合型

2、以下说法中正确的是( )。

A. C语言程序总是从第一个的函数开始执行

B. 在C语言程序中,要调用的函数必须在main()函数中定义

C. C语言程序总是从main()函数开始执行

D. C语言程序中的main()函数必须放在程序的开始部分

3、选出下列标识符中不是合法的标识符的是( )。

A. hot_do B. cat1 C. _pri D. 2ab

4、下列描述中不正确的是( )。

A、字符型数组中可能存放字符串。

B、可以对字符型数组进行整体输入、输出。

C、可以对整型数组进行整体输入、输出。

D、不能在赋值语句中通过赋值运算符“=”对字符型数组进行整体赋值。

5、若已定义:int a[9], *p=a;并在以后的语句中未改变p的值,不能表示a[1]地址的表达式为( )。

A. p+1 B. a+1 C. a++ D. ++p

6、设有如下定义: int x=10,y=3,z;

则语句printf(“%d\n”,z=(x%y,x/y));的输出结果是( )。

A. 1 B. 0 C. 4 D. 3

7、定义如下变量和数组: int i, x[3][3]={1,2,3,4,5,6,7,8,9};则下面语句

for(i=0;i<3;i++) printf(“%d”,x[i][2-i]); 的输出结果是( )

A. 1 5 9 B. 1 4 7 C. 3 5 7 D. 3 6 9

8、读出以下语句的输出结果是( )。

int x=10,y=10;

printf(“%d %d\n”,x——,——y);

A. 10 10 B. 9 9 C. 9 10 D. 10 9

9、两次运行下面的程序,如果从键盘上分别输入6和3,则输出结果是( )。

if(x++>5)printf(“%d”,x);

else printf(“%d\n”,x – -);

A. 7和5 B. 6和3 C. 7和4 D. 6和4

10、设有如下定义:char *aa[2]={“abcd”,“ABCD”};则以下说法中正确的是( )。

A)aa数组成元素的值分别是“abcd”和ABCD“

B)aa是指针变量,它指向含有两个数组元素的字符型一维数组

C)aa数组的两个元素分别存放的是含有4个字符的一维字符数组的首地址

D)aa数组的两个元素中各自存放了字符‘a’和‘A’的地址

11、以下语句的输出结果是( )。

int a=-1,b=4,k;

k=(+ +a<0)&&!(b – -<=0);

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

A. 1,0,4 B. 1,0,3 C. 0,0,3 D. 0,0,4

12、下列程序的输出结果是( )。

char *p1=“abcd”, *p2=“ABCD”, str[50]=“xyz”;

strcpy(str+2,strcat(p1+2,p2+1));

printf(“%s”,str);

A. xyabcAB B. abcABz C. ABabcz D. xycdBCD

13、执行下面的程序后,a的值是( )。

#define SQR(X) X*X

main( )

{ int a=10,k=2,m=1;

a/=SQR(k+m)/SQR(k+m);

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

A. 10 B. 1 C. 9 D. 0

14、14、设A为存放(短)整型的一维数组,如果A的首地址为P,那么A中第i 个元素的地址为( )。

A.P+i*2 B.P+(i-1)*2 C.P+(i-1) D.P+i

15、下列程序执行后输出的结果是( )。

int d=1;

fun (int p)

{ int d=5;

d + =p + +;

printf(“%d,”,d); }

main( )

{ int a=3;

fun(a);

d + = a + +;

printf(“%d\n”,d); }

A.8,4 B. 9,6 C. 9,4 D. 8,5

16、表达式:10!=9的值是( )。

A.true B.非零值 C.0 D.1

17、若有说明:int i,j=7,*p=&i;则与i=j;等价的语句是( )。

A. i= *p; B. *p=*&j; C. i=&j; D. i=* *p;

18、不能把字符串:Hello!赋给数组b的语句是( )。

A. char b[10]={‘H’,‘e’,‘l’,‘l’,‘o’,‘!’};

B. char b[10]; b=“Hello!”;

C. char b[10]; strcpy(b,“Hello!”);

D.char b[10]=“Hello!”;

19、在C程序中有如下语句:char *func(int x,int y); 它是( )。

A. 对函数func的定义 B. 对函数func的调用。

C.对函数func的原型说明 D. 不合法的。

20、以下程序的输出结果是( )。

char str[15]=“hello!”;

printf(“%d\n”,strlen(str));

A. 15 B. 14 C. 7 D. 6

三、阅读程序题

1、int x=6,y=7;

printf(“%d,”,x++);printf(“%d\n”,++y);

程序的输出结果是______.

2、float f=3.1415927;

printf(“%f,%5.4f,%3.3f”,f,f,f);

则程序的输出结果是______.

3、a=3;

a+=(a<1)a:1; printf(“%d”,a);

结果是______.

4、main( )

{ int a[5]={2,4,6,8,10},*P,* *k;

p=a; k=&p;

printf(“%d,”,*(p++));

printf(“%d\n”,* *k);

程序的输出结果是______.

5、main()

{int a,b;

for (a=1,b=1;a<=100;a++)

{ if(b>=20) break;

if(b%3==1)

{b+=3;continue;}

b-=5;} }

程序的输出结果a的值为______.

获取方案 OR 点我咨询 点我咨询 - 点我咨询

上一篇:自考《c语言程序设计》模拟试题(1)
下一篇:自考《政治经济学(财)》模拟试题及答案(一)