7 8 C语言上机考试试题2

合集下载

C语言试题2

C语言试题2

《高级程序设计基础(C语言)》考试题二一、选择题(共20题,每题2分)1.C语言中规定函数的返回值的类型是由( )。

A.retrurn语句中的表达式类型所决定B.调用该函数时的主调用函数类型所决定C.调用该函数时系统临时决定D.在定义该函数时所指定的函数类型所决定2.对于C语言的函数,下列叙述中正确的是()。

A.函数的定义不能嵌套,但函数调用可以嵌套B.函数的定义可以嵌套,但函数调用不能嵌套C.函数的定义和调用都不能嵌套D.函数的定义和调用都可以嵌套3.若定义:int a=511,*b=&a;, 则printf("%d\n",*b);的输出结果为A) 无确定值B) a的地址C) 512 D) 5114.以下选项中,对指针变量p不正确的操作是()。

A.int a[6],*p; p=&a; B.int a[6],*p; p=a;C.int a[6]; int *p=a=1000; D.int a[6]; int *p1,*p2=a; *p1=*p2;5.下面程序段的运行结果是()。

char str[]=”abc”,*p=str;printf(“%d\n”,*(p+3));A.67;B.0;C.字符‘c’的地址;D.字符‘c’;6.下面语句中能正确进行字符串赋值操作的是()。

A.char str[5]={“abcde”};B.char str[5]={…a‟,‟b‟,‟c‟,‟d‟,‟e‟} C.char *str; str=”abcde”;D.char *str; scanf(“%s”,str);7.下面程序段的运行结果是()。

char s[6]; s=”abcd”; printf(“\”%s\”\n”,s);A.”abcd”;B.”\”abcd”;C.”\”abcd\””;D.编译出错;8.以下程序的输出结果是( )main(){ int i, a[10];for(i=9;i>=0;i--) a[i]=10-i;printf("%d%d%d",a[2],a[5],a[8]);}A) 258 B) 741 C) 852 D) 3699.在定义int a[10];之后,对a的引用正确的是( )。

7-8-2语言上机考试试题4

7-8-2语言上机考试试题4

C语言上机考试试题-42008.1.10一、选择题(评分标准20 分,每小题2分)1. 设变量定义为“int x, *p=&x;”,则&*p相当于________。

(A)p (B)*p (C)x (D)*&x2. 若变量已正确定义,________不能使指针p成为空指针。

(A)p=EOF (B)p=0 (C)p='\0' (D)p=NULL3. C语言源程序文件经过编译连接之后生成一个后缀为________的文件。

(A).c (B).obj (C).exe (D).bas4. 以下选项中不正确的整型常量是________。

(A)12L (B)-10 (C)1,900 (D)123U5. 表达式________的值是0.(A)3%5 (B)3/5.0 (C)3/5 (D)3<56. 表达式!(x>0||y>0) 等价于________。

(A)!x>0||!y>0 (B)!(x>0)||!(y>0) (C)!x>0&&!y>0 (D)!(x>0)&&!(y>0)7. 若变量已正确定义并赋值,表达式________不符合C语言语法。

(A)4&&3 (B)+a (C)a=b=5 (D)int(3.14)8. 若变量已正确定义,执行语句scanf(“%d%d%d “,&k1,&k2,&k3);时,________是正确的输入。

(A)203040 (B)20 30 40 (C)20,30 40 (D)20,30,409. 执行语句printf(“________”, 2); 将得到出错信息。

(A)%d (B)%o (C)%x (D)%f10. 设变量定义为char s[ ]=“hello\nworld\n”;,则数组s中有________个元素。

7-8-C语言上机考试试题3

7-8-C语言上机考试试题3

C语言上机考试试题-3一、选择题(评分标准 20 分,每小题2分)1. 以下选项中可作为C语言合法常量的是________。

(A) -80. ( B) -080 (C) (D)2. 以下叙述中正确的是________。

(A) 用C程序实现的算法必须要有输入和输出操作(B) 用C程序实现的算法可以没有输出但必须要输入(C) 用C程序实现的算法可以没有输入但必须要有输出(D) 用C程序实现的算法可以既没有输入也没有输出3. 已有定义:char a[]="xyz",b[]={'x','y','z'};,以下叙述中正确的是________。

(A) 数组a和b的长度相同 (B) a数组长度小于b数组长度(C) a数组长度大于b数组长度 (D) 上述说法都不对4. 以下叙述中错误的是________。

(A) 数组名代表的是数组所占存储区的首地址,其值不可改变。

(B) 当程序执行中,数组元素的下标超出所定义的下标范围时,系统将给出“下标越界”的出错信息。

(C) 对于double类型数组,不可以直接用数组名对数组进行整体输入或输出。

(D) 可以通过赋初值的方式确定数组元素的个数。

5. 以下叙述中正确的是________。

(A) 预处理命令行必须位于源文件的开头(B) 在源文件的一行上可以有多条预处理命令(C) 宏名必须用大写字母表示(D) 宏替换不占用程序的运行时间6. 表达式strlen(”hello”) 的值是________。

(A)4 (B)5 (C)6 (D)77. 设变量定义为“int a, b;”,执行语句scanf(“a=%d, b=%d”,&a, &b);时,输入________,则a和b的值都是10。

(A)10 10 (B)10, 10 (C)a=10 b=10 (D)a=10, b=108. 以下与函数fseek(fp,0L,SEEK_SET)有相同作用的是_______。

C语言程序设计上机考试试题和参考答案

C语言程序设计上机考试试题和参考答案
char str1[80], str2[80]; int m, n;
printf("Input str1:\n"); gets(str1); //1
printf("Input m and n:\n"); scanf("%d%d", &m, &n); //1
mystrcpy(str1, str2, m, n); //2 puts(str2); }
1、请按行读入数据 2、请按给定的函数原型编写程序,否则即使程序运行结果正确,也不给分。 参考答案
#include<stdio.h>
void Input(int a[][10], int n);
int Compute(int a[][10], int n);
main()
{
int n, a[10][10]; int sum;
//2
{
int i, flag = 0, sum = 0; //1
for (i = 1; i <= n / 2; i++) //1
{
if (n % i == 0)
//1
{
sum = sum + i; //1
}
}
if (sum == n)
//1
{
flag = 1;
}
return flag;
//1
} 3.(15 分)请按给定要求编程计算方阵的主对角线之和。其中方阵的输入请在 Input 函数实现,计算主对角之和请在 Compute 函数实现,计算结果请在主函数打印, 且给定的方阵最大为 10x10,方阵实际大小请在主函数读入。Input 函数和 Compute 函数的函数原型如下:

全国计算机等级考试二级C语言上机题库(全)

全国计算机等级考试二级C语言上机题库(全)

int i; for(i=1;i<strlen(ss);i+=2) {if(ss[i]>=’a’&&ss[i]<=’z’) ss[i]-=32; } } 第五套 1. 程序填空 给定程序中,函数 fun 的功能是:计算下式前 n 项的和作为函数值返 回。例如:当形参 n 的值为 10 的时,函数返回:9.6125588。 第一处 s=0; 第二处 for(i=1;i<=n;i++) 第三处 s=s+(2.0*i-1)*(2.0*i+1)/(t*t); 2. 程序修改 给定程序 MODI1.C 中函数 fun 的功能是:统计 substr 所指字符串在 str 所指字符串中出现次数。 /**found**/ for(i=0;str[i];i++) /**found**/ if(substr[k+1]==’\0’) 3. 程序设计 请编写一个函数 fun,它的功能是:根据以下公
for(i=1;i<N;i++) if(max<a[i].s)max=a[i].s; for(i=0;i<N;i++) if(max==a[i].s)b[n++]=a[i]; return n; } 第九套 1. 程序填空 给定程序中,函数 fun 的功能是:计算形参 x 所指数组中 N 个数的平 均值,(规定所有数均为正数),将所指数组中小于平均值的数据移至 数据的前部,大于等于平均数的移至 x 所指数组的后部,平均值作为 函数值返回,在主函数中输出平均值和移动后的数据。 第一处 for(i=0;i<N;i++) av+=x[i]/N 第二处 y[j]=x[i]; x[i]=-1;j++;} 第三处 i++; 2. 程序修改 给定程序 MODI1.C 中函数 fun 的功能是:统计字符串各元音字母 (即:A、E、I、O、U)的个数。注意字母不分大小写。 /**found**/ num[k]=0;

二级C语言上机考试题及答案

二级C语言上机考试题及答案

1.填空给定程序的功能是调用fun函数建立班级通讯录。

通讯录中记录每位学生的编号,姓名和电话号码。

班级的人数和学生的信息从键盘读入,每个人的信息作为一个数据块写到名为myfile5.dat的二进制文件中。

请在程序的下划线处填入正确的内容并把下划线删除,是程序得出正确的结果。

注意:源程序存放在考生文件夹下的BLANK1.c中不得增行或删行,也不得更改程序的结构!void check();/**********found**********/int fun(___1___ *std){/**********found**********/___2___ *fp; int i;if((fp=fopen("myfile5.dat","wb"))==NULL)return(0);printf("\nOutput data to file !\n");for(i=0; i<N; i++)/**********found**********/fwrite(&std[i], sizeof(STYPE), 1, ___3___);fclose(fp);return (1);}修改给定程序MODI1.C中函数fun的功能是:先将在字符串s中的字符按正序存放到t串中,然后把s中的字符按逆序连接到t串后面。

例如:当s中的字符串为:“ABCDE”时,则他中的字符串应为:“ABCDEEDCBA”。

请改正程序中的错误,使他能得出正确的结果。

注意:不要改动main函数,不能增行或删行,也不得更改程序的结构!void fun (char *s, char *t){ int i, sl;sl = strlen(s);/************found************/for( i=0; i<=s1; i ++)t[i] = s[i];for (i=0; i<sl; i++)t[sl+i] = s[sl-i-1];/************found************/t[sl] = '\0';}程序函数fun的功能是:将两个两位数的正整数a,b合并成一个整数放在c中。

C语言上机作业试题5套含答案

C语言上机作业试题5套含答案

第一次上机作业(2021):要求:独立完成,上机调试通事后上交作业提交邮件主题命名:班级学号姓名(第1次作业),例如:电1301班2王鹏(第1次作业)以附件形式将每次作业的所有程序源程序紧缩打包后提交,紧缩文件命名格式同上。

程序必需采用缩进格式1.大写字母转换成小写字母从键盘输入一个大写英文字母,输出相应的小写字母。

例:输入G输出g2.求平方根输入一个实数x,计算并输出其平方根(保留1 位小数)。

例:输入17输出The square root of is3.温度转换设计一个程序将华氏温度转换成摄氏温度c = 5/9(f-32)a)输入华氏温度(实型)b)输出的摄氏温度结果保留两位小数例:Please input Fahrenheit temperature:The corresponding Celsius temperature is4. 计算旅途时刻输入二个整数time1 和time2,表示火车的起身时刻和抵达时刻,计算并输出旅途时刻。

(输入的有效的时刻范围是0000 到2359,不需要考虑起身时刻晚于抵达时刻的情形。

)例:输入712 1411 (起身时刻是7:12,抵达时刻是14:11)输出The train journey time is 6 hours 59 minutes.5. 数字加密输入一个四位数,将其加密后输出。

方式是将该数每一名上的数字加9,然后除以10 取余,做为该位上的新数字,最后将第1 位和第3 位上的数字互换,第2 位和第4 位上的数字互换,组成加密后的新数。

例:输入1257输出The encrypted number is 4601试探题:你可否编程找出谁做的好事?有四位同窗中的一名做了好事,不留名,夸奖信来了以后,校长问这四位是谁做的好事。

⏹A说:不是我。

⏹B说:是C。

⏹C说:是D。

⏹D说:他乱说。

已知三个人说的是实话,一个人说的是谎话。

此刻要依照这些信息,找出做了好事的人。

C语言上机考试经典试题(3套)

C语言上机考试经典试题(3套)

四川省普通高等学校计算机应用知识和能力第二十八次等级考试二级(C与C++语言) 笔试试卷时间: 2008年4月19 日( 判断下列各题是否正确,如正确,在客观答题纸上对应编号选A,否则选B )1. 在程序设计中,常用一维数组来表示线性表的顺序存储空间。

( 1 )2. 数据在计算机内存中的表示是指数据的存储结构。

( 2 )3. Windows是多用户多任务操作系统。

( 3 )4. 能影响中断响应次序的技术是中断优先级和中断屏蔽。

( 4 )5. 链表可以随机访问任意一个结点,而顺序表则不能。

( 5 )6. 作业与进程的主要区别是前者是由用户提交,后者是由系统自动生成。

( 6 )7. 数据的逻辑结构是从逻辑关系上描述数据,它与数据的存储结构无关,是独立于计算机的。

( 7 )8. 中断控制方式适用于外存同CPU之间进行大量数据交换。

( 8 )9. 提供没有错误的程序是提高软件的可维护性的基本措施。

( 9 )10.软件结构是以指令为基础而组成的一种控制层次结构。

( 10 )二、选择题(每小题1分,共5分)1. 数据流图是用于描述结构化方法中(11 )工作阶段的工具。

11 (A) 可行性分析(B) 程序编码(C) 详细设计(D) 需要分析2. 若进栈序列为1,2,3,4,且进栈过程中可以出栈,则不可能的出栈序列是(12 )。

12 (A) 1,4,3,2 (B) 3,1,4,2(C) 2,3,4,1 (D) 3,4,2,13. 任何两个并发进程之间(13 )。

13 (A) 可能存在同步或互斥关系(B) 一定存在同步关系(C) 一定彼此独立无关(D) 一定存在互斥关系4. 以下的哪个特征不是分时操作系统的主要特征(14 )。

14 (A) 分时性(B) 独占性(C) 交互性(D) 多路性5. 需求分析中开发人员主要从用户那里了解(15 )。

15 (A) 软件的维护(B) 软件的结构(C) 软件做什么(D) 软件的测试1. C++语言对C语言做了很多改进,C++语言相对于C语言的最根本的变化是(16 )。

C语言试卷2

C语言试卷2

C语言模拟考试学号:2 姓名:路超颖得分:1 ..................................................................单项选择下列说法中正确的是( ).A.函数调用不占运行时间,只占编译时间.B.宏替换不占运行时间,只占编译时间.C.有参数的宏定义,就是函数.D.在定义宏时,宏名与带参数的括弧之间可以加空格.【评分报告得分:1.0 之 1.0 】【参考答案】正确B【学生答案】B以下标识符中,不能作为合法的C用户定义标识符的是()。

A.PrintfB.WORDC.ForD.sizeof【评分报告得分:0.0 之 1.0 】【参考答案】错误D【学生答案】B以下运算符中优先级最低的是()。

A.&&B.<=C.||D.+【评分报告得分:0.0 之 1.0 】【参考答案】错误C【学生答案】[未答此题]以下选项中合法的实型常数是()。

A.E-3B..2E0C.1.3ED.5E2.0【评分报告得分:0.0 之 1.0 】【参考答案】错误B【学生答案】[未答此题]若有以下程序:main(){int k=2,i=2,m;m=(k+=i*=k);printf("%d,%d\n",m,i);}执行后的输出结果是( )。

A.8,3B.7,4C.8,6D.6,4【评分报告得分:0.0 之 1.0 】【参考答案】错误D【学生答案】[未答此题]执行以下程序段后,输出结果和a的值是()。

int a=10; printf("%d",a++);A.11 和 10B.10 和 11C.11 和 11D.10 和 10【评分报告得分:0.0 之 1.0 】【参考答案】错误B【学生答案】[未答此题]下面叙述中错误的是( )。

A.函数的形式参数,在函数未被调用时就不被分配存储空间B.若函数的定义出现在主调函数之前,则可以不必再加说明C.一般来说,函数的形参和实参的类型要一致D.若一个函数没有return语句,则什么值也不会返回【评分报告得分:0.0 之 1.0 】【参考答案】错误D【学生答案】[未答此题]在C语言中,调用函数除函数名外,还必须有()。

C语言第3版 选择题(第7、8、9章)

C语言第3版 选择题(第7、8、9章)

习题七一、选择题1.下列叙述中错误的是C。

A) 预处理命令必须以#号开头B) 预处理命令可以写成多行C) 预处理命令必须置于源文件的开始处D) 预处理命令以回车结束2.C语言编译系统对宏替换的处理是在A进行的。

A) 源程序编译前B) 源程序编译时C) 程序连接时D) 程序运行时'3.在宏定义#define PI 中,是C。

A) 单精度数B) 双精度数C) 字符串D) 由PI位置确定其类型4.设有宏定义#define A B abcd ,则宏替换时,A。

A) 宏名A用B abcd 替换B) 宏名A B用abcd 替换C) 宏名A 和宏名B都用abcd 替换D) 语法错误,无法替换5.下列有关宏的叙述中错误的是A。

A) 宏名必须使用大写英文字母~B) 宏替换不占用程序的运行时间C) 宏参数没有数据类型D) 宏名没有数据类型6.下列宏定义,最不会引起二义性的是D。

A) #define ADD(a,b) a+bB) #define ADD(a,b) (a)+(b)C) #define ADD(a,b) (a+b)D) #define ADD(a,b) ((a)+(b))7.设有宏定义#define M 3+2 则表达式2 * M * 3 的值为B。

A) 30 B) 12'C) 10 D) 138.设有宏定义#define Y(n) (4*n) 则表达式3+Y(5+1)的值为B。

A) 21 B) 24C) 27 D) 309.设有宏定义:#define N 3#define M N+2则表达式2*M/N的值为A。

A) 6 B) 3C) D) 错误·替换为2*3 + 2 /3,其中,2/3是整除,值为110.在#include命令中,#include后面的文件名用双引号定界,则系统寻找被包含文件的方式是 D 。

A) 在C系统的include文件夹查找B) 在源程序所在文件夹查找C) 先在C系统的include文件夹查找,查找失败后再到源程序所在文件夹查找D) 先在源程序所在文件夹查找,查找失败后再到C系统的include文件夹查找11.(不要求)设有以下A、B两个程序段,则说法正确的是B。

c语言试卷和答案2

c语言试卷和答案2

for (k=1; k<5; k++) {
if (k%2) printf(“#”);
else continue;
printf(“*”);
}
}
A)#*#* B)*#*#
程序3
#include <stdio.h>
void main()
{int i=0, n;
char s[10]= “298h01”;
n=0;
for(i=0; s[i]!= ‘\0’; i++)
if(s[i]<’9’ && s[i]>=’0’)
n=n*10+(s[i]-‘0’);
程序1【程序说明】输出1~1000之间所有满足各位数字的立方和等于它本身的数。
【程序】
#include <stdio.h>
void main()
{ int digit,k,m,s;
for(k=1;k<=1000;k++){
(24) ;
return x-1;
}
void main()
{ int y;
y=p(&x);
printf(“(%d,%d)”,x,y);
}
A)(-1,0) B)(1,-1) C)(1,0) D)出错
三、 程序填空题(每空2分,共16分)
A)p=’\0’ B)p=0 C)p=NULL D)p=EOF
(23)下列程序的输出结果是 。
#include <stdio.h>
int x;
int p( int *y)

《C语言程序设计》试题2及答案

《C语言程序设计》试题2及答案

《C语言程序设计》试题二 (1)一、填空题 (1)二、选择题 (2)三、阅读程序题 (5)四、程序填空题 (5)五、编程题 (7)《C语言程序设计》试题二答案 (8)《C语言程序设计》试题二一、填空题1、C语言中普通整型变量的类型说明符为int ,在内存中占4字节,有符号普通整型的数据范围是-32767~32768。

2、C语言中基本的数据类型有:整形、实型、字符型。

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

4用体的各成员放到同一存储空间5、有如下输入语句:scanf(“a=%d,b=%d,c=%d”,&a,&b,&c);为使变量a的值为1,b的值为3,c的值为2,从键盘输入数据的正确形式应是a=1,b=3,c=2 。

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

7、符号”a”和’a’的区别‘a’是字符常量在内存中占一个字节”a”是字符串常量在内存中占两个字节。

8、下列程序的输出结果是7,1。

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语言的数据类型是(B)。

A. 复合型B. 双精度型C. 逻辑型D. 集合型2、以下说法中正确的是(C)。

A. C语言程序总是从第一个的函数开始执行B. 在C语言程序中,要调用的函数必须在main()函数中定义C. C语言程序总是从main()函数开始执行D. C语言程序中的main()函数必须放在程序的开始部分3、选出下列标识符中不是合法的标识符的是(D)。

A. hot_doB. cat1C. _priD. 2ab4、下列描述中不正确的是(c)。

全国计算机等级考试二级C语言选择题

全国计算机等级考试二级C语言选择题

全国计算机等级考试二级C语言选择题全国计算机等级考试二级C语言选择题大全C语言之所以命名为C,是因为 C语言源自Ken Thompson发明的B语言,而B语言则源自BCPL语言。

下面给大家整理了全国计算机等级考试二级C语言选择题大全,欢迎阅读!全国计算机等级考试二级C语言选择题大全在下列各题的A)、B)、C)、D)四个选项中,只有一个选项是正确的。

(1)为了避免流程图在描述程序逻辑时的灵活性,提出了用方框图来代替传统的程序流程图,通常也把这种图称为A)PAD图B)N-S图 C)结构图 D)数据流图(2)结构化程序设计主要强调的是A)程序的规模B)程序的效率C)程序设计语言的先进性D)程序易读性(3)为了使模块尽可能独立,要求A)模块的内聚程度要尽量高,且各模块间的耦合程度要尽量强B)模块的内聚程度要尽量高,且各模块间的耦合程度要尽量弱C)模块的内聚程度要尽量低,且各模块间的耦合程度要尽量弱D)模块的内聚程度要尽量低,且各模块间的耦合程度要尽量强(4)需求分析阶段的任务是确定A)软件开发方法B)软件开发工具C)软件开发费用D)软件系统功能(5)算法的有穷性是指A)算法程序的运行时间是有限的B)算法程序所处理的数据量是有限的C)算法程序的长度是有限的D)算法只能被有限的用户使用(6)对长度为n的线性表排序,在最坏情况下,比较次数不是n(n-1)/2的排序方法是A)快速排序 B)冒泡排序 C)直接插入排序 D)堆排序(7)如果进栈序列为e1,e2,e3,e4,则可能的出栈序列是A)e3,e1,e4,e2 B)e2,e4,e3,e1C)e3,e4,e1,e2 D) 任意顺序(8)将E-R图转换到关系模式时,实体与联系都可以表示成A)属性 B)关系 C)键 D)域(9)有三个关系R、S和T如下:RB C Da 0 k1b 1 n1SB C Df 3 h2a 0 k1n 2 x1TBCDa0k1由关系R和S通过运算得到关系T,则所使用的运算为A)并 B)自然连接 C)笛卡尔积 D)交(10)下列有关数据库的描述,正确的是A)数据处理是将信息转化为数据的过程B)数据的物理独立性是指当数据的逻辑结构改变时,数据的存储结构不变C)关系中的每一列称为元组,一个元组就是一个字段D)如果一个关系中的属性或属性组并非该关系的关键字,但它是另一个关系的关键字,则称其为本关系的外关键字(11)以下叙述中正确的是A)用C程序实现的算法必须要有输入和输出操作B)用C程序实现的算法可以没有输出但必须要有输入C)用C程序实现的算法可以没有输入但必须要有输出D)用C程序实现的算法可以既没有输入也没有输出(12)下列可用于C语言用户标识符的一组是A)void, define, WORD B)a3_3,_123,Car C)For, -abc, IF CaseD)2a, DO, sizeof(13)以下选项中可作为C语言合法常量的是A)-80 B)-080 C)-8e1.0 D)-80.0e(14)若有语句:char *line[5];,以下叙述中正确的是A) 定义line是一个数组,每个数组元素是一个基类型为char为指针变量B) 定义line是一个指针变量,该变量可以指向一个长度为5的字符型数组C) 定义line是一个指针数组,语句中的*号称为间址运算符D) 定义line是一个指向字符型函数的指针(15)以下定义语句中正确的是A)int a=b=0; B)char A=65+1,b=′b′; C)float a=1,*b=&a,*c=&b; D)double a=00;b=1.1;(16)有以下程序段char ch; int k;ch=′a′;k=12;printf("%c,%d,",ch,ch,k); printf("k=%d ",k);已知字符a的ASCII码值为97,则执行上述程序段后输出结果是A)因变量类型与格式描述符的类型不匹配输出无定值B)输出项与格式描述符个数不符,输出为零值或不定值C)a,97,12k=12D)a,97,k=12(17)有以下程序main(){ int i,s=1;for (i=1;i<50;i++)if(!(i%5)&&!(i%3)) s+=i;printf("%d ",s);}程序的输出结果是A)409 B)277 C)1 D)91(18)当变量c的值不为2、4、6时,值也为"真"的表达式是A)(c==2)||(c==4)||(c==6)B)(c>=2&& c<=6)||(c!=3)||(c!=5)C)(c>=2&&c<=6)&&!(c%2)D)(c>=2&& c<=6)&&(c%2!=1)(19)若变量已正确定义,有以下程序段int a=3,b=5,c=7;if(a>b)a=b; c=a;if(c!=a)c=b;printf("%d,%d,%d ",a,b,c);其输出结果是A)程序段有语法错 B)3,5,3 C)3,5,5 D)3,5,7(20)有以下程序#includemain(){ int x=1,y=0,a=0,b=0;switch(x){ case 1:switch(y){ case 0:a++; break;case 1:b++; break;}case 2:a++; b++; break;case 3:a++; b++;}printf("a=%d,b=%d ",a,b);}程序的运行结果是A)a=1,b=0 B)a=2,b=2 C)a=1,b=1 D)a=2,b=1(21)下列程序的输出结果是#include "stdio.h"main(){ int i,a=0,b=0;for(i=1;i<10;i++){ if(i%2==0){a++;continue;}b++;}printf("a=%d,b=%d",a,b); }A)a=4,b=4 B)a=4,b=5 C)a=5,b=4 D)a=5,b=5(22)已知#int t=0;while (t=1){...}则以下叙述正确的是A)循环控制表达式的值为0B)循环控制表达式的值为1C)循环控制表达式不合法D)以上说法都不对(23)下面程序的输出结果是main(){ int a[10]={1,2,3,4,5,6,7,8,9,10},*p=a;printf("%d ",*(p+2));}A)3 B)4 C)1 D)2(24)以下错误的定义语句是A)int x[][3]={{0},{1},{1,2,3}}; B)int x[4][3]={{1,2,3},{1,2,3},{1,2,3},{1,2,3}};C)int x[4][]={{1,2,3},{1,2,3},{1,2,3},{1,2,3}}; D)int x[][3]={1,2,3,4};(25)有以下程序void ss(char *s,char t){ while(*s){ if(*s==t)*s=t-′a′+′A′;s++; } }main(){ char str1[100]="abcddfefdbd",c=′d′;ss(str1,c); printf("%s ",str1);}程序运行后的输出结果是A)ABCDDEFEDBD B)abcDDfefDbD C)abcAAfefAbAD)Abcddfefdbd(26)有如下程序main(){ char ch[2][5]={"6937","8254"},*p[2];int i,j,s=0;for(i=0;i<2;i++)p[i]=ch[i];for(i=0;i<2;i++)for(j=0;p[i][j]>′′;j+=2)s=10*s+p[i][j]-′0′;printf("%d ",s);}该程序的输出结果是A)69825 B)63825 C)6385 D)693825(27)有定义语句:char s[10];,若要从终端给s输入5个字符,错误的输入语句是A)gets(&s[0]); B)scanf("%s",s+1); C)gets(s); D)scanf("%s",s[1]);(28)以下叙述中错误的是A)在程序中凡是以"#"开始的`语句行都是预处理命令行B)预处理命令行的最后不能以分号表示结束 C)#define MAX 是合法的宏定义命令行 D)C程序对预处理命令行的处理是在程序执行的过程中进行的(29)设有以下说明语句typedef struct{ int n;char ch[8];} PER;则下面叙述中正确的是A)PER 是结构体变量名 B)PER是结构体类型名 C)typedef struct 是结构体类型 D)struct 是结构体类型名(30)以下叙述中错误的是A)gets函数用于从终端读入字符串B)getchar函数用于从磁盘文件读入字符C)fputs函数用于把字符串输出到文件D)fwrite函数用于以二进制形式输出数据到文件(31)以下能正确定义一维数组的选项是A)int a[5]={0,1,2,3,4,5}; B)char a[]={′0′,′1′,′2′,′3′,′4′,′5′,′′};C)char a={′A′,′B′,′C′}; D)int a[5]="0123";(32)有以下程序#includemain(){ char p[]={′a′, ′b′, ′c′},q[10]={ ′a′, ′b′, ′c′};printf("%d%d ",strlen(p),strlen(q));}以下叙述中正确的是A) 在给p和q数组置初值时,系统会自动添加字符串结束符,故输出的长度都为3B) 由于p数组中没有字符串结束符,长度不能确定,但q数组中字符串长度为3C) 由于q数组中没有字符串结束符,长度不能确定,但p数组中字符串长度为3D) 由于p和q数组中都没有字符串结束符,故长度都不能确定(33)有以下程序#include#includevoid fun(char *s[],int n){ char *t; int i,j;for(i=0;ifor(j=i+1;jif(strlen(s[i])>strlen(s[j])) {t=s[i];s[i]:s[j];s[j]=t;}}main(){ char *ss[]={"bcc","bbcc","xy","aaaacc","aabcc"};fun(ss,5); printf("%s,%s ",ss[0],ss[4]);}程序的运行结果是A)xy,aaaacc B)aaaacc,xy C)bcc,aabcc D)aabcc,bcc(34)有以下程序#includeint f(int x){ int y;if(x==0||x==1) return(3);y=x*x-f(x-2);return y;}main(){ int z;z=f(3); printf("%d ",z);}程序的运行结果是A)0 B)9 C)6 D)8(35)下面程序段的运行结果是char str[]="ABC",*p=str;printf("%d ",*(p+3));A)67 B)0 C)字符′C′的地址 D)字符′C′(36)若有以下定义:struct link{ int data;struct link *next;} a,b,c,*p,*q;且变量a和b之间已有如下图所示的链表结构:指针p指向变量a,q指向变量c。

C语言上机试题及答案

C语言上机试题及答案

个新数放在整形变量 t 中,高位任在高位,低位任在低位(例如:当 s 中的数为 8765432 时,t 中的数为 8642)。请输入程序并改正程序中带”*”行中的错误,使它能正确的输出结 果。
#include<stdio.h> Void main()
{ int s,i=1,s1=1,t=0; printf(“请输入一个整数:”); scanf(“%d”,s); for(i=1,s1=1;s>0;i++) { if(i%2==0){ t=t*s1+s%10; s1=s1*10; } s1=s1*10; } printf(“输入数据组成的整数为:%d\n”,t);
{
x=x+7;
} printf("%d\n",x); } 2.填空 ①1 ② n%i==0 3.改错 int count;改为 int count=0; fopen(‘mydata.txt’,’r’)改为 fopen(”mydata.txt” ,”r”) if(c>=’0’||c<=’9’)改为 if(c>=’0’&c<=’9’)
count++;
printf("文件中数字字符的个数:%d\n",count);
}
附:答案
第一套
1.编程
#include<stdio.h>
void fun(int a,int b,long *c)
{
int a1,a10,b1,b10;
a1=a%10;
a10=a/10;
b1=b%10;
b10=b/10;
void main()
{ FILE *fp;

国计算机等级考试二级c语言上机题汇编

国计算机等级考试二级c语言上机题汇编

国计算机等级考试二级c语言上机题汇编网友常用标签(共3个):计算机等级考试二级上机试题1、编一个函数fun(char *s),函数的功能是把字符串中的内容逆置.例子如:字符串中原有的内容为:abcdefg,则调用该函数后,串中的内容为:gfedcba.试题程序:#include <string.h〉#include 〈conio.h>#include 〈stdio.h〉#define N 81/*注:该题的算法是先分别找出字符串的两头,然后同时逐一往中间移动,每移动一次都进行两字符的位置对换,直到中间字符(用s+i〈s+n—1—i来控制).由于s+i中一个地址,因此要注意把它的内容取出再进行换位。

即先进行取内容运算*)*/ fun(char *s){ int i=0,t,n=strlen(s);for(;s+i〈s+n-1-i;i++){t=*(s+i);*(s+i)=*(s+n—1—i);*(s+n—1-i)=t;}}main(){ char a[N];clrscr();printf("Enter a string:"); gets(a);printf("The original string is:");puts(a);fun(a);printf("\n”);printf("The string after modified:");puts(a);}2、写程序,实现矩阵(3行3列)的转置(即行列互换)。

例如,输入一面的矩阵:程序输出:试题程序:#include <stdio。

h>/*这题的关键在于进行行列下标转换的算法,由矩阵的对称性我们不难看出在进行行列互换时a[j]在好是与a[j][i]互换,因而只要我位让程序走完矩阵的左上角即可(用for(i=0;i<2;i++)再套for(j=i+1;j〈3;j++)来完成左上角的走动.*/int fun(int array[3][3]){ int i,j,t;for(i=0;i〈2;i++)for(j=i+1;j<3;j++){t=array[i][j];array[i][j]=array[j][i];array[j][i]=t;}}main(){ int i,j;int array[3][3]={{100,200,300},{400,500,600},{700,800,900}}; clrscr();for(i=0;i〈3;i++){for(j=0;j〈3;j++)printf("%7d",array[i][j]);printf(”\n”);}fun(array);printf("Converted array:\n");for(i=0;i<3;i++){for(j=0;j〈3;j++)printf("%7d”,array[i][j]);printf(”\n”);}}3、请编一个函数fun(int *a,int n,int *odd,int *even),函数的功能是分别求出数组中所有奇数之和以及所有偶数之和。

C语言正式上机题

C语言正式上机题

C语⾔正式上机题C语⾔上机实验题⽬1 打印图形1.输⼊n值,打印下列图形:**************** 当n = 4时2.输⼊n值,打印下列⾼和上底均为n 的等腰梯形:**************************** 当n = 4时3.输⼊n值,打印下列⾼和下底均为n 的等腰梯形:**************************** 当n = 4时4.输⼊n值,打印下列⾼和上底均为n的等腰空⼼梯形:****** ** ** ************** 当n = 5时5.输⼊n值,打印下列⾼和下底均为n的等腰空⼼梯形:************** ** ** ****** 当n=5时6.编写程序打印下列上三⾓形式的乘法九九表:1 2 3 4 5 6 7 8 9 ——————————————————1 2 3 4 5 6 7 8 94 6 8 10 12 14 16 1825 30 35 40 4536 42 48 5449 56 6364 72817.编写程序打印下列乘法九九表:1 2 3 4 5 6 7 8 9 ——————————————————8164 7249 56 6336 42 48 5425 30 35 40 4516 20 24 28 32 369 12 15 18 21 24 274 6 8 10 12 14 16 181 2 3 4 5 6 7 8 98.编程打印数字⾦字塔:11 2 11 2 3 2 11 2 3 4 3 2 11 2 3 4 5 4 3 2 11 2 3 4 5 6 5 4 3 2 11 2 3 4 5 6 7 6 5 4 3 2 11 2 3 4 5 6 7 8 7 6 5 4 3 2 11 2 3 4 5 6 7 8 9 8 7 6 5 4 3 2 1 9.编程打印数字⾦字塔:1 2 3 4 5 6 7 8 9 8 7 6 5 4 3 2 11 2 3 4 5 6 7 8 7 6 5 4 3 2 11 2 3 4 5 6 7 6 5 4 3 2 11 2 3 4 5 6 5 4 3 2 11 2 3 4 5 4 3 2 11 2 3 4 3 2 11 2 3 2 110.输⼊n值,打印边长为n的空⼼正六边形:******* ** ** ** ** ** ** ** ** ******* 当n = 6时11.编写程序输出下⾯的图形,要求输⼊顶⾏字符和图形的⾼。

计算机等级二级考试题(C语言)

计算机等级二级考试题(C语言)

考试题1---------一、客观题。

1.()是构成C语言程序的基本单位。

A、函数B、过程C、子程序D、子例程2.C语言程序从()开始执行。

A、程序中第一条可执行语句B、程序中第一个函数C、程序中的main函数D、包含文件中的第一个函数3.下列正确的标识符是()。

A、-a1B、a[i]C、a2_iD、int t4.C语言中的简单数据类型包括()。

A、整型、实型、逻辑型B、整型、实型、逻辑型、字符型C、整型、字符型、逻辑型D、整型、实型、字符型5.如果int a=3,b=4;则条件表达式"a<b? a:b"的值是()。

A、3B、4C、0D、16.设整型变量 a=2,则执行下列语句后,浮点型变量b的值不为0.5的是()A、b=1.0/aB、b=(float)(1/a)C、b=1/(float)aD、b=1/(a*1.0)7.以下对一维数组a的正确说明是:()。

A、char a(10)B、 int a[];C、int k=5,a[k];D、char a[3]={‘a’,’b’,’c’};8.若有以下数组说明,则i=10;a[a[i]]元素数值是()。

int a[12]={1,4,7,10,2,5,8,11,3,6,9,12};A.10B.9C.6D.59.下列数据结构中,属于非线性结构的是()。

A、循环队列B、带链队列C、二叉树D、带链栈10.C语言中函数返回值的类型是由()决定的。

A、函数定义时指定的类型B、return语句中的表达式类型C、调用该函数时的实参的数据类型D、形参的数据类型11.以下对结构变量stul中成员age的非法引用是()。

struct student{ int age;int num;}stu1,*p;p=&stu1;A、 stu1.ageB、 student.ageC、 p->ageD、 (*p).age12.设有如下定义:struck sk{ int a;float b;}data;int *p;若要使P指向data中的a域,正确的赋值语句是()。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

套数号
答案
4 1. F 2. T 3. F 4. T 5. F 6. T 7. T 8. F 9. F 10. F
三、填空题 ( 评分标准 10 分,每小题 2 分)
1. 存储‘A’要占用____1____个字节(用数字表示)。 2. 设 a=3.b=2.c=1.则 a>b>c 的值为___0_____。(用‘0’或‘1’表示) 3. 在 C 语言中,头文件的后缀名是___h_____。 4. 表达式 !!5 的值是____1____。 5. 若有定义:int a=8,b=5,c; ,执行语句 c=a/b+0.4;后,c 的值为___1_____。 参考答案:
str[i]=str[i]-32 ;
puts(str);
}
操作说明:
在考生目录的**子目录下,有*.c 文件,该文件中“/*$1*/”行中的语句 if(str[i]<='a'&& str[i]>='z')
有错误,请改正(注意:不得加行、减行、加句、减句,否则后果自负)。该程序功能:输入 n 以及
小于 n 个字符的字符串,将字符串中所有小写字母改为相应的大写字母后,输出该字符串。
运行样例 1 行
运行样例:1 0.0001
结果:0.367882
3. 该程序功能:输入1个字符串,输出其中所出现过的大写英文字母。 /*循环,分支,库函数*/ #include <stdio.h> void main() { char x[80],y[26]; int i,j,ny=0;
gets(x); for(i=0;x[i]!='\0';i++)
char ch; /*$*/ fp = fopen("test.txt", "r"); if (fp == NULL) { printf("can not open test\n");
exit(0); } ch = fgetc(fp); while(ch != EOF) { putchar(ch);
参考答案:if(str[i]>='a'&& str[i]<='z')
运行样例 1 行
运行样例:5 Apple
结果:APPLE
五、程序填空( 评分标准 10 分,每小题 5 分)
1. 以下程序对 test.txt 进行读操作,并将读出的文本输出到屏幕上。 #include <stdio.h> #include <stdlib.h> main() { FILE *fp;
C 语言上机考试试卷-2
2008.1.7
一、选择题 ( 评分标准 20 分,每小题 2 分)
1. 执行语句“a=b=3; printf(“%d,%d\n”, a<<2, b>>2);”后的输出结果为___A_____。 (A)12,0 (B)12,3 (C)false,true (D)true,false 2^3+2^2=12 ★2. 若 a 是 32 位 int 整型变量,判断其最低 2 个二进位均为 1 的表达式为____A____。 位与运算,11 得 1,a 的 32 位与 3 的 32 位,不足则补零。补它十几个零 (A)a&3==3 (B)a&3==11 (C)a&11==3 (D)a&11==11 3. 以“只读”方式打开文本文件 c:\xy.text,下列语句中哪一个是正确的___B_____。 (A)fp=fopen(“c:\\xy.txt”, “a”); (B)fp=fopen(“c:\\xy.txt”, “r”); (C)fp=fopen(“c:\\xy.txt”, “wb”); (D)fp=fopen(“c:\xy.txt”, “r”); 4. 为表示“a 和 b 都不等于 0”,应使用的 C 语言表达式是____D___。 (A)(a!=0) ‖(b!=0) (B)a‖b (C)!(a=0)&&(b!=0) (D)a&&b 5. 若 x 是单精度实型变量,k 是基本整型变量,以下正确的输入语句是___A_____。 (A) scanf(“%f%d”, &x,&k); (B)scanf(“%f%d”, x,k); (C)scanf(“%d%f”, &x,&k) (D)scanf(“%d%f”, x,k); 6. 下列运算中优先级最低的是___C_____。 (A)* (B)<< (C)= (D)-> 7. 已知字符‘c’的 ASC II 为 99,语句 printf(“%d,%c”, ‘c’, ‘c’+1);输出为_____C___。 (A)99,c (B)99, 100 (C)99,d (D)语句不合法 8. 不正确的赋值或赋初值的方式是____D____。 (A)char str[6]={‘s’,’t’,’r’, ’i’,’n’,’g’}; (B)char str[10]=”string” 定义阶段可以 (C)char *str=”string”; (D)char str[10]; str=”string”;" 字符串不能直接赋值 9. C 语言程序中可以对程序进行注释,注释部分必须用符号____C_____括起来。 (A)‘{‘ 和’}’ (B)‘[‘和’]’ (C)“/*”和”*/” (D)“*/”和”/*” 10. ____D____是合法的用户自定义标识符。 (A)b-b (B)float (C)<fr> (D)_isw 必须是字符开头 如果是数字就不可以了
} }
void main( ) { int k, a[6];
for(k=0; k<6; k++) scanf("%d", &a[k]);
sort(a, 6) ; for(k=0; k<6;k++)
printf("%d ", a[k]); } 操作说明:
在考生目录的**子目录下,有*.c 文件,该文件中“/*$1*/”行是根据程序功能需要填充部分,请 完成程序填充(注意:不得加行、减行、加句、减句,否则后果自负)。该程序功能:输入 6 个整数 12 33 43 6 3 22 ,输出结果:3 6 12 22 33 43。 参考答案:a[k]>a[m] 运行样例 1 行 运行样例 1:12 33 43 6 3 22 结果:3 6 12 22 33 43
if(x[i]>='A'&&x[i]<='Z') { for(j=0;j<ny;j++) if(y[i]==x[j]) break; /*$1*/ continue if(j==ny) { y[ny]=x[i]; ny++;
} } for(i=0;i<ny;i++) printf("%c ",y[i]); printf("\n"); }
把这一句删除:将 test.txt 文件放在考生目录下,并在其中存入“hello,welcome to the world of C!” 字样。 参考答案: fp = fopen("test.txt", "r"); 运行样例 1 行 运行结果 1:hello,welcome to the world of C!
for(k=m;k%n==0;)
/*$1*/ for(k=m; k%n!=0;)
k=k+m;
printf("%d\n",k);
}
操作说明:
在考生目录的**子目录下,有*.c 文件,该文件中“/*$1*/”行中的语句 k%n==0; 有错误,请改正
(注意:不得加行、减行、加句、减句,否则后果自负)。该程序功能:输入 m、n(要求输入数均大
#include <math.h>
void main()
{ float x,eps,s=1,t=1,i=1;
scanf("%f%f",&x,&eps);
do{
t=-t*x/i;
/*$1*/
t=-t*x/i++;
s+=t;
}while(fabs(t)>=eps);
printf("%f\n",s);
}
操作说明:
{
int n;
unsigned int i;
char *str;
scanf("%d\n",&n);
str=(char*)malloc(n);
gets(str);
for(i=0; i<strlen(str); i++)
if(str[i]<='a'&& str[i]>='z')
/*$1*/ if(str[i]>='a'&& str[i]<='z')
2. 输入 6 个整数 12 33 43 6 3 22 ,输出为:3 6 12 22 33 43 。 /* 形参和实参的传递 */ #include <stdio.h> void sort(int *a,int n ) { int i, k, m, t;
for(i=0; i<n-1;i++) { k=i; for(m=i+1; m<n;m++) if (/*$1*/) a[k]>a[m] k=m; t=a[k]; a[k]=a[i]; a[i]=t ;
相关文档
最新文档