首页 > 自考本科 > 自考c程序设计真题

自考c程序设计真题

发布时间:

c程序设计自考真题

11D;14A;15D;16D;17C;18B;19D;20C;23:0;24p=&a[8];2511;29无返回值;30rb+;31s=532101013320,40,30,6034Lilei402000.00000035:141516(此踢要注意空格每个数字前面都有两个空格的)39#includemain(){inti,j;for(i=9;i>=1;i=i-2){for(j=0;jmain(){intyear,i,j;printf("Inputtheyear:");scanf("%d",&year);i=year%4;j=year%400;if(i==0&&j!=0)printf("yes!");else("No!");}41#includevoidchange(double*a,double*b);main(){doublex,y;printf("Inputxandy:");scanf("%d%d",&x,&y);change(&x,&y);printf("%d%d",x,y);}voidchange(double*a,double*b){doubletemp;temp=*a;*a=*b;*b=temp;}上面的都是自己作的,或许有不对的地方还请指教要是有什么不懂的可以给我留言~~再有就是关于23题,我是按10<3+1这个表达式做的我觉的你可能是写错了要是按你写的我在电脑上面试了一下输出的是160~~~呵呵

c语言程序设计试题

阐述编程语言的概念,学习进制转换以及程序的基本运行原理,让大家先有一个整体上的认识。下面是我整理的关于c语言程序设计基础知识,希望大家认真阅读!

【程序1】

题目:有1、2、3、4个数字,能组成多少个互不相同且无重复数字的三位数?都是多少?

1.程序分析:可填在百位、十位、个位的数字都是1、2、3、4。组成所有的排列后再去

掉不满足条件的排列。

2.程序源代码:

代码如下:

#include "stdio.h"

#include "conio.h"

main()

{

int i,j,k;

printf("\n");

for(i=1;i<5;i++) /*以下为三重循环*/

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

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

{

if (i!=k&&i!=j&&j!=k) /*确保i、j、k三位互不相同*/

printf("%d,%d,%d\n",i,j,k);

}

getch();

}

【程序2】

题目:企业发放的奖金根据利润提成。利润(I)低于或等于10万元时,奖金可提10%;利润高

于10万元,低于20万元时,低于10万元的部分按10%提成,高于10万元的部分,可可提

成7.5%;20万到40万之间时,高于20万元的部分,可提成5%;40万到60万之间时高于

40万元的部分,可提成3%;60万到100万之间时,高于60万元的部分,可提成1.5%,高于

100万元时,超过100万元的部分按1%提成,从键盘输入当月利润I,求应发放奖金总数?

1.程序分析:请利用数轴来分界,定位。注意定义时需把奖金定义成长整型。

2.程序源代码:

代码如下:

#include "stdio.h"

#include "conio.h"

main()

{

long int i;

int bonus1,bonus2,bonus4,bonus6,bonus10,bonus;

scanf("%ld",&i);

bonus1=100000*0. 1;

bonus2=bonus1+100000*0.75;

bonus4=bonus2+200000*0.5;

bonus6=bonus4+200000*0.3;

bonus10=bonus6+400000*0.15;

if(i<=100000)

bonus=i*0.1;

else if(i<=200000)

bonus=bonus1+(i-100000)*0.075;

else if(i<=400000)

bonus=bonus2+(i-200000)*0.05;

else if(i<=600000)

bonus=bonus4+(i-400000)*0.03;

else if(i<=1000000)

bonus=bonus6+(i-600000)*0.015;

else

bonus=bonus10+(i-1000000)*0.01;

printf("bonus=%d",bonus);

getch();

}

【程序3】

题目:一个整数,它加上100后是一个完全平方数,再加上168又是一个完全平方数,请问该数是多少?

1.程序分析:在10万以内判断,先将该数加上100后再开方,再将该数加上268后再开方,如果开方后

的结果满足如下条件,即是结果。请看具体分析:

2.程序源代码:

代码如下:

#include "math.h"

#include "stdio.h"

#include "conio.h"

main()

{

long int i,x,y,z;

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

{

x=sqrt(i+100); /*x为加上100后开方后的结果*/

y=sqrt(i+268); /*y为再加上168后开方后的结果*/

if(x*x==i+100&&y*y==i+268) /*如果一个数的平方根的平方等于该数,这说明此数是完全平方数*/

printf("\n%ld\n",i);

}

getch();

}

【程序4】

题目:输入某年某月某日,判断这一天是这一年的第几天?

1.程序分析:以3月5日为例,应该先把前两个月的加起来,然后再加上5天即本年的.第几天,特殊

情况,闰年且输入月份大于3时需考虑多加一天。

2.程序源代码:

代码如下:

#include "stdio.h"

#include "conio.h"

main()

{

int day,month,year,sum,leap;

printf("\nplease input year,month,day\n");

scanf("%d,%d,%d",&year,&month,&day);

switch(month) /*先计算某月以前月份的总天数*/

{

case 1:sum=0;break;

case 2:sum=31;break;

case 3:sum=59;break;

case 4:sum=90;break;

case 5:sum=120;break;

case 6:sum=151;break;

case 7:sum=181;break;

case 8:sum=212;break;

case 9:sum=243;break;

case 10:sum=273;break;

case 11:sum=304;break;

case 12:sum=334;break;

default:printf("data error");break;

}

sum=sum+day; /*再加上某天的天数*/

if(year%400==0||(year%4==0&&year%100!=0)) /*判断是不是闰年*/

leap=1;

else

leap=0;

if(leap==1&&month>2) /*如果是闰年且月份大于2,总天数应该加一天*/

sum++;

printf("It is the %dth day.",sum);

getch();

}

【程序5】

题目:输入三个整数x,y,z,请把这三个数由小到大输出。

1.程序分析:我们想办法把最小的数放到x上,先将x与y进行比较,如果x>y则将x与y的值进行交换,

然后再用x与z进行比较,如果x>z则将x与z的值进行交换,这样能使x最小。

2.程序源代码:

代码如下:

#include "stdio.h"

#include "conio.h"

main()

{

int x,y,z,t;

scanf("%d%d%d",&x,&y,&z);

if (x>y)

{t=x;x=y;y=t;} /*交换x,y的值*/

if(x>z)

{t=z;z=x;x=t;} /*交换x,z的值*/

if(y>z)

{t=y;y=z;z=t;} /*交换z,y的值*/

printf("small to big: %d %d %d\n",x,y,z);

getch();

}

【程序6】

题目:用*号输出字母C的图案。

1.程序分析:可先用'*'号在纸上写出字母C,再分行输出。

2.程序源代码:

代码如下:

#include "stdio.h"

#include "conio.h"

main()

{

printf("Hello C-world!\n");

printf(" ****\n");

printf(" *\n");

printf(" * \n");

printf(" ****\n");

getch();

}

【程序7】

题目:输出特殊图案,请在c环境中运行,看一看,Very Beautiful!

1.程序分析:字符共有256个。不同字符,图形不一样。

2.程序源代码:

代码如下:

#include "stdio.h"

#include "conio.h"

main()

{

char a=176,b=219;

printf("%c%c%c%c%c\n",b,a,a,a,b);

printf("%c%c%c%c%c\n",a,b,a,b,a);

printf("%c%c%c%c%c\n",a,a,b,a,a);

printf("%c%c%c%c%c\n",a,b,a,b,a);

printf("%c%c%c%c%c\n",b,a,a,a,b);

getch();

}

【程序8】

题目:输出9*9口诀。

1.程序分析:分行与列考虑,共9行9列,i控制行,j控制列。

2.程序源代码:

代码如下:

#include "stdio.h"

#include "conio.h"

main()

{

int i,j,result;

printf("\n");

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

{

for(j=1;j<10;j++)

{

result=i*j;

printf("%d*%d=%-3d",i,j,result); /*-3d表示左对齐,占3位*/

}

printf("\n"); /*每一行后换行*/

}

getch();

}

【程序9】

题目:要求输出国际象棋棋盘。

1.程序分析:用i控制行,j来控制列,根据i+j的和的变化来控制输出黑方格,还是白方格。

2.程序源代码:

代码如下:

#include "stdio.h"

#include "conio.h"

main()

{

int i,j;

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

{

for(j=0;j<8;j++)

if((i+j)%2==0)

printf("%c%c",219,219);

else

printf(" ");

printf("\n");

}

getch();

}

11 D ;14 A; 15 D; 16 D; 17 C; 18 B; 19 D; 20 C;23:0 ;24 p=&a[8]; 25 11; 29 无返回值 ;30 rb+;31 s=532 1010133 20,40,30,6034 Lilei 40 2000.00000035: 14 15 16(此踢要注意空格 每个数字前面都有 两个空格的)39#includemain(){ int i,j; for(i=9;i>=1;i=i-2) { for(j=0;jmain(){ int year,i,j; printf("Input the year: "); scanf("%d",&year); i=year%4;j=year%400;if(i==0 && j!=0) printf("yes!");else("No!");}41#includevoid change(double *a,double *b);main(){ double x,y;printf("Input x and y: ");scanf("%d %d",&x,&y);change(&x,&y);printf("%d %d",x,y);}void change(double *a,double *b){ double temp; temp=*a; *a=*b; *b=temp;}上面的都是自己作的,或许有不对的地方 还请指教 要是有什么不懂的可以给我留言~~再有就是关于23题,我是按10<3+1这个表达式做的 我觉的你可能是写错了 要是按你写的 我在电脑上面试了一下 输出的是160~~~呵呵

自考c程序设计真题

1. B!C就是0;&&语句j=!c已经为零,即真值已经为负,则后面i++不执行。故i=1,j=0;2.C 先看*说明s是指针,再看STRING说明s指向的是一个字符型数组。3.D.int a=4,*p=&a。 这个要怎么解释啊?*其实是告诉p是指针,应该理解为(int*)p,故a要加上取地址符。4.选项看不懂。能排过版吗?5.C(.的优先级比*高)6.B.元素a[0]的地址 .即为p=a,数组名即为数组首地址,就是a[0]地址。7. 1 a

11 D ;14 A; 15 D; 16 D; 17 C; 18 B; 19 D; 20 C;23:0 ;24 p=&a[8]; 25 11; 29 无返回值 ;30 rb+;31 s=532 1010133 20,40,30,6034 Lilei 40 2000.00000035: 14 15 16(此踢要注意空格 每个数字前面都有 两个空格的)39#includemain(){ int i,j; for(i=9;i>=1;i=i-2) { for(j=0;jmain(){ int year,i,j; printf("Input the year: "); scanf("%d",&year); i=year%4;j=year%400;if(i==0 && j!=0) printf("yes!");else("No!");}41#includevoid change(double *a,double *b);main(){ double x,y;printf("Input x and y: ");scanf("%d %d",&x,&y);change(&x,&y);printf("%d %d",x,y);}void change(double *a,double *b){ double temp; temp=*a; *a=*b; *b=temp;}上面的都是自己作的,或许有不对的地方 还请指教 要是有什么不懂的可以给我留言~~再有就是关于23题,我是按10<3+1这个表达式做的 我觉的你可能是写错了 要是按你写的 我在电脑上面试了一下 输出的是160~~~呵呵

现在刚改版,无。可以在网上下模拟试题。

一、填空题 1、C语言中基本的数据类型有:______、______ 、______ . 2、C语言中普通整型变量的类型说明符为______,在内存中占______字节,有符号普通整型的数据范围是______ . 3、整数-35在机内的补码表示为______. 4、执行下列语句int a=8; a+=a-=a*a; 后,a的值是______. 5、有如下语句:char A[ ]={“I am a student”}; 该字符串的长度是______,A[3]=______. 6、符号“a”和‘a’的区别是______. 7、所谓“指针”就是______.“&”运算符的作用是______.“*”运算符的作用是______. 8、有如下输入语句:scanf(“a=%d,b=%d,c=%d”,&a,&b,&c);为使变量a的值为1,b的值为3,c的值为2,从键盘输入数据的正确形式应是______. 二、选择题 1、设整型变量a为5,使b不为2的表达式是( )。 A. b=a/2 B. b=6-(——a) C. b=a%2 D. b=a>3?2:1 2、为了避免嵌套的条件分支语句if-else的二义性,C语言规定:C程序中的else总是与( )组成配对关系。 A. 缩排位置相同的if B. 在其之前未配对的if C. 在其之前未配对的最近的if D.同一行上的if 3、以下程序的输出结果是( )。 int x=10,y=10; printf(“%d %d\n”,x——,——y); A. 10 10 B. 9 9 C. 9 10 D. 10 9 4、设A为存放(短)整型的一维数组,如果A的首地址为P,那么A中第i 个元素的地址为( )。 A.P+i*2 B. P+(i-1)*2 C. P+(i-1) D. P+i 5、选出下列标识符中不是合法的标识符的是( )。 A. hot_do B. cat1 C. _pri D. 2ab 6、以下程序的输出结果是( )。 int a=5; float x=3.14; a*=x*(‘E’ - ‘A’); printf(“%f\n”,(float)a); A. 62.000000 B. 62.800000 C. 63.000000 D. 62 7、设有说明double(*p1)[N];其中标识符p1是( )。 A. N个指向double型变量的指针。 B. 指向N个double型变量的函数指针。 C. 一个指向由N个double型元素组成的一维数组的指针。 D.具有N个指针元素的一维指针数组,每个元素都只能指向double型量。 8、在C程序中有如下语句:char *func(int x,int y);它是( )。 A. 对函数func的定义。 B. 对函数func的调用。 C.对函数func的原型说明。 D. 不合法的。 9、以下程序的输出结果是( )。 char str[15]=“hello!”; printf(“%d\n”,strlen(str)); A. 15 B. 14 C. 7 D. 6 10、分析以下程序的输出结果是( )。 main() {int a=5,b=-1,c; c=adds(a,b); printf(“%d”,c); c=adds(a,b); printf(“%d\n”,c); } int adds(int x,int y) {static int m=0,n=3; n*=++m; m=n%x+y++; return(m); } A. 2,3 B. 2,2 C. 3,2 D. 2,4 11、下列描述中不正确的是( )。 A. 字符型数组中可能存放字符串。 B. 可以对字符型数组进行整体输入、输出。 C. 可以对整型数组进行整体输入、输出。 D. 不能在赋值语句中通过赋值运算符“=”对字符型数组进行整体赋值。 12、以下程序的输出结果是( )。 #define f(x) x*x main() {int a=6,b=2,c; c=f(a)/f(b); printf(“%d\n”,c); } A. 9 B. 6 C. 36 D. 18 13、设有如下定义: int x=10,y=3,z; 则语句printf(“%d\n”,z=(x%y,x/y)); 的输出结果是( )。 A. 1 B. 0 C. 4 D. 3 14、定义如下变量和数组:int i;int 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 15、以下对二维数组a进行正确初始化的是( ) A. int a[2][3]={{1,2},{3,4},{5,6}}; B. int a[ ][3]={1,2,3,4,5,6}; C. int a[2][ ]={1,2,3,4,5,6}; D. int a[2][ ]={{1,2},{3,4}}; 16、两次运行下面的程序,如果从键盘上分别输入6和3,则输出结果是( )。 int x; scanf(“%d”,&x); if(x++>5) printf(“%d”,x); else printf(“%d\n”,x - -); A. 7和5 B. 6和3 C. 7和4 D. 6和4 17、设有如下定义: char *aa[2]={“abcd”,“ABCD”}; 则以下说法中正确的是( )。 A)aa数组成元素的值分别是“abcd”和ABCD“ B)aa是指针变量,它指向含有两个数组元素的字符型一维数组 C)aa数组的两个元素分别存放的是含有4个字符的一维字符数组的首地址 D)aa数组的两个元素中各自存放了字符‘a’和‘A’的地址 18、下列程序的输出结果是( )。 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 19、下列程序的输出结果是( )。 int a[5]={2,4,6,8,10},*P,* *k; p=a; k=&p; printf(“%d”,*(p++)); printf(“%d\n”,* *k); A. 4 4 B. 2 2 C. 2 4 D. 4 6 20、不能把字符串: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!”; 三、读程序题 1、float f=3.1415927; printf(“%f,%5.4f,%3.3f”,f,f,f); 则程序的输出结果是 . 2、int x=6, y=7; printf(“%d,”,x++); printf(“%d\n”,++y); 程序的输出结果是 . 3、a=3; a+=(a<1)?a:1; printf(“%d”,a); 结果是. 4、for (a=1,b=1;a<=100;a++) { if(b>=20) break; if(b%3==1) {b+=3; continue;} b-=5; } 程序的输出结果a的值为 . 5、int y=1, x, *p, a[ ]={2,4,6,8,10}; p=&a[1]; for(x=0;x<3;x++) y + = * (p + x); printf(“%d\n”,y); 程序的输出结果y的值是 . 四、程序填空题 1、从键盘上输入10个数,求其平均值。 main() {int i; float f,sum; for(i=1,sum=0.0;i<11;i++) { ; ; } printf(“average=%f\n”,sum/10); } 2、以下程序是建立一个名为myfile的文件,并把从键盘输入的字符存入该文件,当键盘上输入结束时关闭该文件。 #include main() { FILE *fp; char c; fp= ; do{ c=getchar(); fputs(c,fp); }while(c!=EOF); } 3、以下程序的功能是:从键盘上输入若干个学生的成绩, 统计并输出成绩和最低成绩,当输入负数时结束输入。请填空。 main() { float x,amax,amin; scanf(“%f”,&x); amax=x; amin=x; while( ) { if(x>amax) amax=x; if( ) amin=x; scanf(“%f”,&x); } printf(“\namax=%f\namin=%f\n”,amax,amin); } 五、编程题 1. 三个整数a、b、c,由键盘输入,输出其中的一个数。 2.输出1900~2000年中所有的闰年。每输出3个年号换一行。(判断闰年的条件为下面二者之一:能被4整除,但不能被100整除。或者能被400整除。) 3.请编一个函数int fun(int a),它的功能是:判断a是否是素数,若a是素数,返回1;若不是素数,返回0.A的值由主函数从键盘读入。 4.有N个学生,每个学生的信息包括学号、性别、姓名、四门课的成绩,从键盘上输入N个学生的信息,要求输出总平均成绩的学生信息,包括学号、性别、姓名和平均成绩。

c程序设计自考真题04737

11 D ;14 A; 15 D; 16 D; 17 C; 18 B; 19 D; 20 C;23:0 ;24 p=&a[8]; 25 11; 29 无返回值 ;30 rb+;31 s=532 1010133 20,40,30,6034 Lilei 40 2000.00000035: 14 15 16(此踢要注意空格 每个数字前面都有 两个空格的)39#includemain(){ int i,j; for(i=9;i>=1;i=i-2) { for(j=0;jmain(){ int year,i,j; printf("Input the year: "); scanf("%d",&year); i=year%4;j=year%400;if(i==0 && j!=0) printf("yes!");else("No!");}41#includevoid change(double *a,double *b);main(){ double x,y;printf("Input x and y: ");scanf("%d %d",&x,&y);change(&x,&y);printf("%d %d",x,y);}void change(double *a,double *b){ double temp; temp=*a; *a=*b; *b=temp;}上面的都是自己作的,或许有不对的地方 还请指教 要是有什么不懂的可以给我留言~~再有就是关于23题,我是按10<3+1这个表达式做的 我觉的你可能是写错了 要是按你写的 我在电脑上面试了一下 输出的是160~~~呵呵

北京自考计算机应用专业(专科和独立本科)是北京大学计算机系主考(出题判卷),至于学习,可以自学,也可以报助学班,助学班很多,推荐北京大学计算机系的系统班、京海研修学院、海淀自考办的考前串讲班专业代码:01B0801 专业名称:计算机及应用(独立本科段) 课程代码 课程名称 教材名称 出版社 版本 作者 00015 英语(二) 大学英语自学教程(上、下册) 高等教育出版社 1998年版 高 远 00023 高等数学(工本) 高等数学(工本) 北京大学出版社 2006年版 陈兆斗 高 瑞 00342 高级语言程序设计(一) 高级语言程序设计 经济科学出版社 2007年版 迟成文 02197 概率论与数理统计(二) 工程数学(概率论与数理统计) 辽宁大学出版社 2006年版 孙洪祥 柳金甫 02318 计算机组成原理 计算机组成原理 经济科学出版社 2005年版 胡越明 02324 离散数学 离散数学 经济科学出版社 2000年版 左孝凌 02325 计算机系统结构 计算机系统结构 经济科学出版社 2000年版 李学干 02326 操作系统 操作系统 中国人民大学出版社 2007年版 谭耀铭 02331 数据结构 数据结构 经济科学出版社 2000年版 黄刘生 02333 软件工程 软件工程 经济科学出版社 2000年版 陆丽娜 03708 中国近现代史纲要 中国近现代史纲要 出版社 2008年版 王顺生 李 捷 03709 马克思主义基本原理概论 马克思主义基本原理概论 出版社 2008年版 卫兴华 赵家祥 04735 数据库系统原理 数据库系统原理 经济科学出版社 2007年版 丁宝康 04737 C++程序设计 c++程序设计 出版社 2008年版 刘振安 04741 计算机网络原理 计算机网络原理 经济科学出版社 2007年版 杨明福 04747 Java语言程序设计(一) Java语言程序设计 2008年版 夏宽理

11D;14A;15D;16D;17C;18B;19D;20C;23:0;24p=&a[8];2511;29无返回值;30rb+;31s=532101013320,40,30,6034Lilei402000.00000035:141516(此踢要注意空格每个数字前面都有两个空格的)39#includemain(){inti,j;for(i=9;i>=1;i=i-2){for(j=0;jmain(){intyear,i,j;printf("Inputtheyear:");scanf("%d",&year);i=year%4;j=year%400;if(i==0&&j!=0)printf("yes!");else("No!");}41#includevoidchange(double*a,double*b);main(){doublex,y;printf("Inputxandy:");scanf("%d%d",&x,&y);change(&x,&y);printf("%d%d",x,y);}voidchange(double*a,double*b){doubletemp;temp=*a;*a=*b;*b=temp;}上面的都是自己作的,或许有不对的地方还请指教要是有什么不懂的可以给我留言~~再有就是关于23题,我是按10<3+1这个表达式做的我觉的你可能是写错了要是按你写的我在电脑上面试了一下输出的是160~~~呵呵

【免费定制个人学历提升方案和复习资料: 】华南农业大学自考学士学位申请材料有哪些1.华南农业大学成人高等教育本科毕业生申请学士学位审核表一份(网上提交申请后系统生成);2.自学考试毕业生登记表复印件(A4纸 正反两面)一份;3.广东省成人高等教育学士学位外国语水平统一考试成绩单复印件(A4纸)一份;4.自学考试本科毕业证书复印件(A4纸)一份;5.二代身份证复印件(正反两面复在A4纸的同一面上)一份;6.大一寸蓝色底版相片一张(底版与网上学生自行上传的电子相片一致),相片背面写上姓名、出生日期。学生将以上1至5项材料依顺序用一个订书钉装订,有助学单位的学生递交至所在合作办学单位的相关负责老师统一收取,并随时与各合作办学单位的相关负责老师联系;无助学单位的社会考生,个人自行递交至华南农业大学继续教育学院。各合作办学单位负责老师须严格审核学生递交的材料(包括网上初审),确保复印件与原件一致,并对材料的真实性负责。及时递交学生的申请材料以及华南农业大学成人高等教育本科毕业生申请学士学位汇总表(系统生成纸质、电子文档各1份)。自考学士学位申请下方免费学历提升方案介绍: 2014年04月自考02614控制电机真题试卷 格式:PDF大小:137.6KB 2018年10月自考04737C++程序设计真题试卷 格式:PDF大小:494.49KB自考/成考考试有疑问、不知道自考/成考考点内容、不清楚自考/成考考试当地政策,点击底部咨询猎考网,免费获取个人学历提升方案:

c语言程序设计自考真题

想自考就自学,上面总该有你会的吧,不会的问人!先学做人吧!太懒!

江苏成人计算机统考网提供计算机统考试题成人大专计算机试题。

2001年4月份全国高等教育自学考试计算机基础与程序设计试题及答案一、单项选择题(本大题共20小题,每小题1分,共20分)在每小题列出的四个选项中只有一个选项是符合题目要求的,请将正确选项前的字母填在题后的括号内。1.I/O设备指的是计算机的()A、存储设备B、输入和输出设备C、控制器D、运算器2.具有只读功能的内存储器是指()A、ROMB、RAMC、硬盘D、CD-ROM3.C语言源程序的基本单位是()A、过程B、函数C、子程序D、语句4.字符串常数"CHINA"在内存中存储时占的字节数是()A、5个B、6个C、7个D、8个5.设有int p,q;以下不正确的语句是()A、p*=3B、p/=qC、p+=3D、p&&=q6.如果a=1,b=2,c=3,d=4,则表达式a>b?a:cA、1B、2C、3D、47.下面程序段的运行结果是( )main( ){Int a=11,b=10;a-=b+1;printf("%dn",a);}A、1B、0C、2D、58.下列程序段执行后输出结果为()int i=-1;if(i<=0)printf("****n");else printf("%%%%n");A、****CB、%%%%C、%%%%CD、****9.若所用变量已正确地定义,则下列程序段输出结果为()a=10;b=50;c=30;if(a>b)a=bb=c;c=aprintf("a=%d,b=%d,c=%dn",a,b,c);A、a=10,b=50,c=10B、a=10,b=30,c=10C、a=50,b=30,c=10D、a=50,b=3,c=5010.下述循环的循环次数是()int k=2;while(k=0)printf("%d",k);k--;printf("n")A、无限次B、0次C、1次D、2次11.在下列选项中,没有构成死循环的程序段是()A、int i=100;while(1){i=i0+1;if(i>100)break;}B、for(;;)C、int k=1000;do(++k;) while(k>=10000);D、int s=36;while(s);--s;12.若有以下定义和语句,且0<=i<10,则对数组元素的错误引用是()int a[]={0,1,2,3,4,5,6,7,8,9},*p,i;p=aA、*(a+i)B、a[p-a]C、p+iD、*(&a[i])13.下面能正确将字符串"Boy"进行完整赋值操作的语句是()A、char s[3]={'B','o','y'};B、char s[ ]="Boy";C、char s[3]={"Boy"};D、char s[3];s[0]='B';s[1]='o';s[2]='y'14.以下程序段的输出结果是( )char arr[ ]="ABCD";char*ptr;for(ptr=arr;ptrprintf("%sn",ptr);A、ABCDB、AC、DD、ABCD B C BCD C B CD D A D15.下面说法不正确的是()A、一个源程序文件由一个或多个函数组成。B、一个C程序由一个或多个源程序文件组成。C、一个C程序以函数为独立的编译单位。D、一个C程序必须有一个main()函数。16.C语言的auto型变量是()A、存储在动态存储区中。B、存储在静态存储区中。C、存储在计算机CPU的寄存器中。D、存储在外存储器中。17.以下程序的运行结果是()void swapl(x,y)int x,y;{int t;t=x;x=y;y=t;}void swap2(p1,p2)int *p1,*p2;{*p1=*p2;*p2=*p1;}main(){int a=3,b=5,*x1=&a,*x2=&b;swap1(a,b);printf("a=%d,b=%dn",a,b);swap2(x1,x2);printf("a=%d,b=%dn",a,b);}A、a=5,b=3B、a=3,b=5C、a=5,b=3D、a=3,b=5 a=5,b=3 a=3,b=5 a=3,b=3 a=5,b=518.下列定义中,不是指针数组定义的是( )A、int *p[5];B、float *q[4];C、int (*r)[6];D、char *w[7];19.以下程序的运行结果是()#define sl(x)(3.14*(x)*(x))#includemain(){float x,s;s=s1(10);printf("%.2fn",s);}A、3.14B、31.40C、314.00D、6.2820.测试文件是否结束函数的函数名是()A、feofB、EOFC、eofD、FEOF二、多项选择题(本大题共10小题,每小题2分,共20分)在每小题列出的五个选项中有二至五个选项是符合题目要求的,请将正确选项前的字母填在题后的括号内。多选、少选、错选均无分。21.下列哪些设备属外存储设备()A、RAMB、光盘C、硬盘D、软盘E、磁带22.?X*.C可以代表的文件是()A、AXCD.CB、AXCD.DC、ABX.CD、RX.CE、XX1234.C23.若有int x;float y;指出下面结果为整型数的表达式()A、(int)(x+y)B、(int)x+yC、'a'+xD、x+(int)yE、x*y24.若所用变量已正确定义,下列for循环语句中语法正确的有()A、for(x=0;i=0;i<=10;i++)x++;B、for(x=0,i=0,i<=10,i++)x++;C、for(x=0,i=0;i<=10;i++)x++;D、i=0;x=0;for(i<=10;i++)x++E、i=0;x=0;for(;i<=10;i++)x++25.若有定义及赋值:()int y,*p,*p1;p=&y;p1=p;*p1=4;则可以输出变量y的地址的语句是A、printf("%un",y);B、printf("%un",p);C、printf("%un",*p);D、printf("%un",&y);E、printf("%un",*p1);26.若有定义及赋值:()int a[10]={0,1,2,3,4,5,6,7,8,9},*p;p=a;则引用a中值为5的元素的表达式是A、a[5]B、a[4]C、*(a+5)D、p[5]E、*(p+4)27.若有定义及赋值:()int a[6][6],*p;p=*a;则下列各式中表示地址的表达式是A、a[1]B、a[1]+1C、a[3][3]D、&a[1][3]E、p[0][0]28.若有定义及赋值:()int x[5][6],*p;p=*x;则不能正确引用数组元素x[0][2]的值的表达式是A、x[0][2]B、p[0][2]C、x[0]+2D、*x+2E、*(*x+2)29.下面各式正确的是()A、struct 1_num{long num;struct 1_num*next;}num1,*p1;p1=&num1;B、struct animal{char name [30],float weight,}rabbits;C、struct star{int bh,char name [20],}my_star;my_star.name="moon";D、struct {char x[20];char y[30];int u;}x1,y;E、struct food{int code;char name [30];struct food *p;};struct food *tail;30.设有int y,u=0,x=15,下列各项中能使y值为0的是()A、y=x∧x;B、y=x∣u;C、y=x>>4;D、y=x&u;E、y=~u;第二部分非选择题三、填空题(本大题共10小题,每小题1分,共10分)31.写出查看A盘TC子目录下扩展名为C的所有文件的目录操作命令C:>____________。32.组成C程序的基本单位是____________。33.putchar()函数的功能是____________。34.当s=7时,执行以下程序段后x=____________。if((s>0)&&(s<=10))if((s>=3)&&(s<=6))x=2;else if((s>1)||(s>8))x=3;else x=1;else x=0;35.设i和x都是int型,则for循环语句最多执行次数为____________。for(i=0,x=0;I<=9&&x!=876;i++)scanf("%d",&x);36.以下程序的输出结果是____________。main(){int a[12]={1,2,3,4,5,6,7,8,9,10,11,12},*p[4],i;for(i=0;i<4;i++)p[i]=&a[i*3];printf("%dn",p[3][2]);}37.定义变量可以在函数内部,也可以在函数外部,在函数内部定义的变量称为____________。38.若有定义int x=3,*p;则使p指向变量x的赋值语句为____________。39.共用体的所有成员共享同一段存储空间,它的各个成员的数据类型可以是____________。40.设有FILE*fp;则关闭fp所联系文件的C语句是____________。四、简答题(本大题共4小题,第41、42每小题2分,第43、44每小题3分,共10分)41.简述在Turbo C 2.0集成开发环境下完成一个C程序的全过程。42.写出下列程序段所对应的数学式子。if(x!=0)if(x>0)y=1;else y=-1;else y=0;43.定义char *string="I am a boy";和定义char *string;string="I am a boy";等价吗?为什么?44.简述C对ASCII码文件或二进制文件的操作步骤。五、阅读分析题(本大题共10小题,每小题2分,共20分)45.阅读下列程序,写出运作结果main(){int a=100,b=-1;printf("a=%d,%xn",a,a);printf("b=%x,%un",b,b);}46.下面是判断一个学生考试成绩及格与否的程序(成绩A,或B,或C者为及格;成绩为D者不及格):main(){char mark=''A'';switch(mark){case''A'':case''B'':case''C'':printf(">=60n");case''D'':printf("<60n");default:printf("Errorn");}}该程序执行后会产生什么错误?请分析并予以更正。第47题,第48题,第49题请参阅下面程序,并回答相关问题main(){int u,v,a,b,t,r;u=24;v=16;if(u>v){t=u;u=v;v=t;}a=u;b=v;while((r=%ba)!=0){b=a;a=r;}printf("a=%dn",a);}47.程序的输出结果是多少?48.该程序完成什么功能?49.若将while循环替换为do-while循环,请写出相应的程序段。第50题,第51题,第52题请参阅下面程序,并回答相关问题。long fac(int n){if(n>0)return n*fac(n-1);else return 1L;}main( ){int i,m;long s=0;scanf("%d",&m);for(i=1;i<=m;i++)s=s+fac(i);;printf("%1dn",s);}50.该程序的功能是什么?fac函数是一个什么函数?51.若fac函数的返回值定义为int型,合适吗?52.如果求(1!)!+(2!)!+(3!)!+…+(m!)!,程序如何修改?第53题、第54题请参阅下面程序,并回答相关问题。struct food{int amount;struct food*next;}*head=NULL;void create(int each_amt){struct food * p;p=(struct food*)malloc(sizeof(struct food));p→amount=head_amt;p→next=head;head=p;}53.语句p=(struct food *)malloc(sizeof(struct food));和p→amount=each_amt;是功能是什么?54.语句p→next=head;head=p;的功能是什么?六、程序设计题(本大题共2小题,第55题8分,第56题12分,共20分)55.对任意一个3行3列的二维整型数组,编程实现:(1)从键盘对数组元素赋初值。(2)查找每一列中元素值最大的元素并输出其值及行下标和列下标。(假设数组中各元素值都不相同)56.编写字符串拷贝函数将指针str2指向的字符串复制到由指针str1所指的字符串中。请在主函数中调用字符串拷贝函数并输出str1指向的字符串。(不得用C中的strcpy标准库函数)计算机基础与程序设计试卷参考答案一、单项选择题(本大题共20小题,每小题1分,共20分)1.B2.A3.B4.B5.D6.C7.B8.D9.A10.B11.C12.C13.B14.D15.C16.A17.D18.C19.C20.A二、多项选择题(本大题共10小题,每小题2分,共20分)21.BCDE22.ADE23.ACD24.CE25.BD26.ACD27.ABD28.CD29.ADE30.ACD三、填空题(本大题共10小题,每小题1分,共10分)31.DIR A:TC*.C32.函数33.向终端输出一个字符34.335.10次36.1237.局部变量38.p=&x39.不相同的40.fclose(fp)四、简答题(本大题共4小题,第41、42题每题2分;第43、44题每题3分,共10分)41.[参考答案](1)利用编辑功能生成C源程序。(2)利用编译功能生成相应的目标程序。(3)利用连接功能生成可执行程序。(4)运行可执行程序。42. [参考答案]y=-1(x<0)y=0(x=0)y=1(x>0)43. [参考答案](1)等价。(1分)(2)因为string是字符型指针变量。(1分)(3)无论哪种赋值方式都只是将字符串的首地址赋给了string,而不是将整个字符串赋给了string。(1分)44[参考答案](1)按规定的格式打开文件。(1分)(2)对打开的文件进行读/写操作。(1分)(3)关闭已打开的文件。(1分)五、阅读分析题(本大题共10小题,每小题2分,共20分)45. [参考答案]a=100,64(1分)b=ffff,65535(1分)46. [参考答案](1)该程序有逻辑错误。当mark为''A''(或''B''或''C'')时,三条printf语句全部要执行一次。(1分)(2)要得到正确的结果,应做下面修改:(1分)case''C':printf(">=60n");break;case''D'':printf("<60n");break;47. [参考答案]a=8(2分)48. [参考答案]该程序用于求u和v的最大公约数。(2分)49. [参考答案]while语句可以改为:(2分)r=b%a;do{if(f= =0)break;b=a;a=r;}while((r=b%a)!=0);50. [参考答案]51. [参考答案]不合适。会产生整数溢出。即使定义为long型,输入的m值也不宜过大,否则仍会产生溢出。(2分)52. [参考答案]只要将s=s+fac(i)改为:s=s+fac(fac(i))即可。(2分)53. [参考答案](1)前一句用于创建一个新结点,并使指针P指向新结点。(1分)(2)后一句用于接受调用程序的实参,并将其值赋给新结点的成员amount。(1分)54. [参考答案](1)前一句用于将新结点与原head指向的结点串接在一起。(1分)(2)后一句用于使head指向新加入的结点P。(1分)六、程序设计题(本大题共2小题,第55题8分,第56题12分,共20分)55. [参考答案]参考程序如下:#includevoid main(void){int i,j,im,jm,x[3][3],max;for(i=0;j<3;i++)for(j=0;j<3;j++)scanf("%d",&x[i][j]);for(j=0;j<3;j++){max=x[0][j];im=0;jm=j;for(i=1;i<3;i++)if(max {max=x[i][j];im=i;jm=j;}printf("i=%d j=%d max=%dn",i,j,max);}}56. [参考答案]参考程序如下:#includevoid strcpy(char *,char * );void main(void){char *str1,*str2="abcdef";strcpy(str1,str2);printf("%s",str1);}void strcpy(char *s1,char *s2){int i=0;while((s1[i]=s2[i])!='''')i++;}

你可以到自考网里面去找。里面有

自考c语言程序设计真题

太多了,会愁死人的。分开几个帖子,就会有好多人帮你。

CABBDCCBBCBCA

江苏成人计算机统考网提供计算机统考试题成人大专计算机试题。

你可以到自考网里面去找。里面有

  • 索引序列
  • c程序设计自考真题
  • 自考c程序设计真题
  • c程序设计自考真题04737
  • c语言程序设计自考真题
  • 自考c语言程序设计真题
  • 返回顶部