C语言程序设计练习一
C语言程序设计练习题(含程序及参考答案)1
![C语言程序设计练习题(含程序及参考答案)1](https://img.taocdn.com/s3/m/165c58ccfe4733687e21aac2.png)
C语言练习题(所提供的源程序均采用自定义函数方式解决,如不采用函数方式,也可直接在main函数中借鉴该思想编程,因时间有限,所有程序未能一一验证,仅供参考使用)1、定义一个函数int fun(int a,int b,int c),它的功能是:若a,b,c能构成等边三角形函数返回3,若能构成等腰三角形函数返回2,若能构成一般三角形函数返回1,若不能构成三角形函数返回0。
#include <stdio.h>int fun(int a,int b,int c){if(a+b>c && b+c>a && a+c>b){if(a==b && b==c )return 3;else if(a==b||b==c||a==c)return 2;else return 1;}else return 0;}void main(){int a,b,c,shape;printf("\nInput a,b,c: ");scanf("%d%d%d",&a,&b,&c);printf("\na=%d, b=%d, c=%d\n",a,b,c);shape =fun(a,b,c);printf("\n\nThe shape : %d\n",shape);}2、编写一个程序,将两个变量的值交换, 例如变量a中的值原为 3,b中的值原为8,程序运行后 a 中的值为8,b中的值为3。
#include <stdio.h>void fun(int *x,int *y){int t;t=*x;*x=*y;*y=t}void main(){int a=3,b=8;printf("%d %d\n",a,b);fun(&a,b);printf("%d %d\n",a,b);}3、从键盘输入3个数,将最大值放在变量a中,最小值放在变量c中。
国家开放大学C语言程序设计章节测试参考答案
![国家开放大学C语言程序设计章节测试参考答案](https://img.taocdn.com/s3/m/328a0e083a3567ec102de2bd960590c69fc3d844.png)
国家开放大学《C语言程序设计》章节测试参考答案第一章C语言概述自测练习一:C语言字符集自测练习1.在C语言字符集中,包含有全部26个英文大写字母和对应的小写字母。
(√)2.在C语言字符集中,一个大写英文字母和它的小写英文字母被视为不同的字符。
(√)3.在C语言程序中,ABC和abc被作为同一标识符使用。
(×)自测练习二:C语言字符集自测练习1.在C语言中,保留字是有专门含义和作用的,不能作为一般标识符使用。
(√)2.在C语言中,作为标识符的第一个字符只能是英文字母或下划线,不能是数字字符。
(√)3.C语言中使用的字符常量,其起止标记符是()。
a. 双引号b. 尖括号c. 单引号d. 中括号4.C语言中使用的字符串常量,其起止标记符是()。
a. 双引号b. 中括号c. 尖括号d. 单引号自测练习三:C语句分类自测练习1.在C语言中,一条简单语句的结束符是()。
a. 分号b. 空格c. 冒号d. 逗号2.在C语言中,每条复合语句的开始标记字符为()。
a. <b. [c. (d. {3.不符合C语言规定的复合语句是()。
a. {x=0;}b. {}c. {;}d. {y=10}4.C语言中的选择类语句有两条,它们是()。
a. else和caseb. if和switchc. if和elsed. switch和case自测练习四:函数分类与使用自测练习1.在每个C语言程序中都必须包含有这样一个函数,该函数的函数名为()。
a. nameb. mainc. MAINd. function2.C语言程序中的基本功能模块为()。
a. 标识符b. 函数c. 表达式d. 语句3.一个函数定义所包含的两个部分是()。
a. 函数头和函数体b. 函数原型和函数体c. 函数名和参数表d. 函数头和函数尾4.一个程序文件开始使用的每条预处理命令,其首字符必须是()。
a. #b. @c. %d. $5.在一个程序文件中,若要使用#include命令包含一个系统头文件,则此头文件所使用的起止定界符为一对()。
《C语言程序设计》综合练习试卷(一)
![《C语言程序设计》综合练习试卷(一)](https://img.taocdn.com/s3/m/8cd585faf12d2af90342e625.png)
《C语言程序设计》综合练习试卷(一)试题一判断题 (每题1分,共10 分)(用T表示正确、F表示不正确) 1.C的任何类型数据在计算机内部都是以二进制形式存储的。
2.按格式符“%d”输出float类型变量时,截断小数位后取整输出。
3.字符数组中字符串可以整体输入输出。
4.传值调用的形参只有在被调用时,才被创建(分配存储单元)。
5.C语言中数组名是指针常量。
6.结构体类型中的各成员项数据类型可以不相同。
7.函数必须有返回值,否则不能使用函数。
8.C程序执行总是从第一个函数开始。
9.可以用关系运算符对字符串进行大小比较。
10.For循环只能用于循环次数已确定的场合。
试题二单选题(每题1分共15分)从A)、B)、C)、D)四个选项中,选出正确的一项。
1.以下程序运行后,输出结果是#include"stdio.h"void main( ){ char s[10]="abcde",*p;p=s+2;printf("%s \n",p);}A) cde B)字符c的ASCII码值 C)字符c的地址 D)出错2.对下面函数f,写出f(f(3))的值。
int f(int x){ static int k=0;x+=k--;return x;}A) 5 B) 3 C) 2 D) 43.以下程序运行后,输出结果是#define PT 5#define S(x) PT*x#include"stdio.h"void main( ){ int a=1,b=2;printf ("%d\n",S(a+b));}A) 15 B) 7 C) 8 D) 无正确答案4. 若有 float a[3][4]; 正确的引用第3行第1列的元素是A) **(a+2) B) *(*a+2) C) a[3][1] D) a[3][0]printf("%.1f,%d\n",10./4,10/8);的输出是A) 2.5, 1.25 B) 2.5, 1 CA) int a[ ]; B)int n=5,a[n];C) int n, a[n]={1,2,3,4,5}; D) int a[10/2];7.若有定义:struct person { char name[9]; int age; } ;person st[10]={{"john",17},{"paul",19},{"Mary",18}};能输出字母M的语句是A) printf("%c",st[2].name);B) printf("%c",st[3].name[1]);C) printf("%c",st[2].name[1]);D) printf("%c",st[2].name[0]);8.不能把字符串:“Hello!”赋给数组b的语句是A) char b[10]={'H','e','l','l','o','!','\0'};B) char b[10];b="Hello!";C) char b[10];strcpy(b,"Hello!");D) char b[10]="Hello!";9.若有 int a[10]={1,2,3,4,5,6,7,8,9,10},*p=a;则表达式值为6的是A)*p+6 B)*(p+6) C)*p+=5 D)p+510. 已知:int *p,m=5, n; 正确的程序段是A) p=&n; scanf(" %d",&p); B) p=&n; scanf(" %d", *p);C) scanf("%d",&n); *p=n; D) p=&n; *p=m;11. 下面程序的运行结果是:#include"stdio.h"void main( ){ int x[4]={ 2,4,6,8},*p, **pp;p=x;pp=&p;printf("%d",*p);printf("%3d",**pp);}A) 4 4 B) 2 4 C) 2 2 D) 4 612.下面程序执行后a的值是#include"stdio.h"void main( ){ int a,k=4,m=6,*p1=&k,*p2=&m;a=p1!=&m;printf("%d\n",a);}A)4 B)1 C)0 D)运行时出错,a无定值13.下列语句序列中,能够将变量u、s中最大值赋给变量t的是A) if (u>s) t=u; t=s; B) t=s; if (u>s) t=u;C) if (u>s) t=s; else t=u; D) t=u; if (u>s) t=s;14. 若有 int a=7,b=12;则语句printf("%d",a&b);输出结果A) 19 B) 9 C) 5 D) 415.若有 FILE *fp; 以“只读”方式打开文本文件a:\aa.dat,下列语句中正确的是A) fp=fopen("a:\aa.dat","w");B) fp=fopen("a:\aa.dat","r");C) fp=fopen("a:\\aa.dat","w");D) fp=fopen("a:\\aa.dat","r");试题三阅读程序题( 每题4分,共24分)写出读下列程序的输出结果1. #include<stdio.h>void main(){ char ch;for(ch='a';ch<'f'; ch++){ putchar(ch-32);putchar(ch);}}2. #include"stdio.h"void main(){ int i;for( i=1;i<=4;i++){ if ((i%3)==0) { printf("$"); continue;} else printf("*");printf("#");}}3. #include "stdio.h"void main(){ int i;for(i=1;i<5;i++)switch(i%5){ case 5: printf(" 5");case 3: printf(" 3");case 1: printf(" 1");default: printf("%2d",i);}}4. #include"stdio.h"void main(){ int x[10];int t,i,j,m=1;for(i=0;i<10;i++){ m=-m;x[i]=m*i;}for(i=1;i<10;i++){ t=x[i];for(j=i-1; j>=0; j--)if(t>x[j]) break;else x[j+1]=x[j];x[j+1]=t;}for(i=0;i<10;i++) printf("%3d",x[i]);}5. #include<stdio.h>void main(){ void swap1(int x ,int y );void swap2(int *x,int *y);void swap3(int &x,int &y);int a1,b1,a2,b2,a3,b3;a1=a2=a3=10;b1=b2=b3=5;swap1(a1,b1);swap2(&a2,&b2);swap3(a3,b3);printf("a1=%d b1=%d\n",a1,b1);printf("a2=%d b2=%d\n",a2,b2);printf("a3=%d b3=%d\n",a3,b3);}void swap1(int x,int y){ int t;t=x;x=y;y=t; }void swap2(int *x,int *y){ int t;t=*x; *x=*y; *y=t; }void swap3(int &x,int &y){ int t;t=x; x=y; y=t; }6.struct node{int num;node *next;};int fun( node *h){ int s,n=0,i;node *p=h ;while(p!=NULL){ for(s=0,i=1;i<p->num;i++)if ((p->num)%i==0) s+=i;if (s==p->num) n++;p=p->next;}return n;}写出执行语句“printf(“%d\n”,fun(head));”的输出结果。
C语言程序设计模拟试题1(附答案)
![C语言程序设计模拟试题1(附答案)](https://img.taocdn.com/s3/m/6d4273747fd5360cba1adbec.png)
《C语言程序设计》模拟试卷一一、单项选择题(每题2分,共30分)1、下列有关C语言的叙述中错误的是(D)。
A) C语句必须以分号结束B) 任何一个C程序中有且只有一个主函数C) 复合语句在语法上可被看作一条语句D) C程序中对数据的任何操作都可由运算符实现2、以下不能定义为用户标识符的是(C)。
A) MAIN B) _HJ C)2ong D) LINE13、下列符号中用来表示C语言中的回车换行的是(B)。
A) \r B) \n C)\b D) \t4、如有如下定义:int a=1,则语句printf(“%d,%d”, a, ++a);的运行结果为(B)。
A) 1, 1 B) 1, 2 C) 2, 2 D)2, 15、已知ch为字符型变量,下面表达式中正确的是(A)。
A) ch=’\xff ’B) ch=’\ff ’C) ch=’ ff ’D) ch=” ff ”6、以下能正确定义一维数组的是(C)。
A) int a[5]={0,1,2,3,4,5}; B) int a[5]=”012345”;C) char a[ ]=”012345”;D) char a[5]={0,1,2,3,4,5};7、以下语句中能正确定义变量并赋初值的是(A)。
A) char c=65; B) float f=f+1.1;C) double x=12.3e3.6; D) int m=n=2.0;8、在执行下列程序时输入:1357924,则程序的运行结果为(D)。
main( ){ int x, y;scanf(“%2d%2d”,&x,&y);printf(“%2d”,x*y); }A) 13 B) 1357 C) 74 D) 7419、执行下列程序段后输出的结果是(C)。
x = 9;while (x > 7){ printf(“*”); x- -; }A) **** B) *** C) ** D) *10、设char str1[10] = “ABCDE”, str2[10] = “xyz”;则执行语句printf(“%d”, strlen(strcpy(str1, str2))); 后的输出结果是(D)A) 9 B) 8 C) 5 D) 311、若用数组名作为函数调用的实参,则传递给形参的是(A)A) 数组的首地址B) 数组第一个元素的值C) 数组中全部元素的值 D) 数组元素的个数12、在C程序中,若未在函数定义时说明函数类型,则函数默认的类型为( A ) A)void B)double C)int D)char13、下面不能正确进行字符串赋值操作的语句是(A)A) char s[5]={"ABCD"};B) char s[5]; s="ABCD";C) char *s;s="ABCDEF"; D) char *s="ABCD";14、设有说明int s[5]={1,3,5,7,9}; int *p=s; 则下列表达式中值为3的是(B )A)++p B)++(*p) C) *(++p) D) *(p+=2)15、下面程序的输出结果是(B)int m=13;int fun( int x, int y){ int m=3;return( x*y-m); }main( ){ int a=7,b=5;printf(“%d\n”, fun(a,b)/m); }A) 1 B) 2 C) 3 D) 10二、判断(每空1分,共10分)1、C语言有三种结构化程序设计方法,分别为顺序结构、选择结构和循环结构。
C语言 程序设计基础试题一及答案
![C语言 程序设计基础试题一及答案](https://img.taocdn.com/s3/m/5da0cfdd767f5acfa0c7cd4f.png)
《程序设计基础》考试试卷一班级姓名学号____________一、选择题(20分)1.算法具有五个特性,以下选项中不属于算法特性的是(A)有穷性(B)简洁性(C)可行性(D)确定性2.以下选项中可作为C语言合法常量的是(A)-80. (B)-080 (C) (D)3.以下叙述中正确的是(A)用C语言实现的算法必须要有输入和输出操作(B)用C语言实现的算法可以没有输出但必须要有输入(C)用C程序实现的算法可以没有输入但必须要有输出(D)用C程序实现的算法可以既没有输入也没有输出4.以下不能定义为用户标识符是(A)Main (B) _0 (C) _int (D) sizeof5.以下选项中,不能作为合法常量的是(A) (B) (C)+4 (D)6.数字字符0的ASCII值为48,若有以下程序main(){char a='1',b='2';printf("%c,",b++);printf("%d\n",b-a);} 程序运行后的输出结果是(A)3,2 (B)50,2 (C)2,2 (D)2,507.有以下程序main(){int m=12,n=34;printf("%d%d",m++,++n); printf("%d%d\n",n++,++m);}程序运行后的输出结果是(A) (B) (C) (D)8.有以下语句:int b;char c[10];,则正确的输入语句是A)scanf("%d%s",&b,&c); B) scanf("%d%s",&b,c);(C)scanf("%d%s",b,c); D)scanf("%d%s",b,&c);9.有以下程序main(){int m,n,p;scanf("m=%dn=%dp=%d",&m,&n,&p);printf("%d%d%d\n",m,n,p); } 若想从键盘上输入数据,使变量M中的值为123,N中的值为456,P中的值为789,则正确的输入是A)m=123n=456p=789 B)m=123 n=456 p=789 C)m=123,n=456,p=789 D)123 456 78910.有以下程序main(){int a,b,d=25;a=d/10%9;b=a&&(-1);printf("%d,%d\n",a,b); }程序运行后的输出结果是A)6,1 B)2,1 C)6,0 D)2,011.有以下程序main(){int i=1,j=2,k=3;if(i++==1&&(++j==3||k++==3))printf("%d %d %d\n",i,j,k);}程序运行后的输出结果是(A)1 2 3 (B)2 3 4 (C)2 2 3 (D)2 3 312.若整型变量a、b、c、d中的值依次为:1、4、3、2。
C语言程序设计练习题(答案)
![C语言程序设计练习题(答案)](https://img.taocdn.com/s3/m/7251d81a3169a4517723a345.png)
四、找出下面程序中的所有语法错误,然后在计算机上运行输出正确结果。
1.(1)Void应为void;(2)INT应为int;(3)“/* COMPUTE RESULT”后缺少“*/”;(4)“printf ("The answer is %i\n" sum);”应为“printf ("The answer is %d\n" ,sum);”
①在VC环境中选择“文件”菜单,然后单击“新建”菜单项。如图1-2所示
图1-2选择新建
②在弹出的新建对话框中设置好相应的内容,如图2-2所示。要事先准备好保存文件的目录,例d:\lx目录。在图1-3中“文件”一栏的源程序文件的扩展名一定要输入C语言程序的扩展名“.c”。设置好后,单击“OK”,就回到了VC++的编辑界面,即将进行输入和编辑的源程序文件example.c文件存放在D盘的LX目录下。
int main (void)
{
printf ("This is my first C program.\nAnd programming in C is even more fun.\n");
return 0;
}
实验4(1)计算33+56的和。
解题思路:将例1.2中变量值改为33与56代码如下:
#include <stdio.h>
int main( )
{int a,b,c;
a=2;b=3;
C=a+b;错误:C未定义
printf(“%d+%d=%d\n”,a,b,c);
return 0;
}
运行结果:2+3=5
C语言课程习题
![C语言课程习题](https://img.taocdn.com/s3/m/7f6328f04693daef5ef73dc8.png)
一、C语言程序设计(1)1.以下不能定义为用户标识符的是()。
A. ScanfB. voidC. _3com_D. int2.以下选项中可作为C语言合法整数的是()。
A. 10110BB. 0386C. 0XffaD. x2a23.十进制数127转换成二进制数是()。
A. 11111111B. 01111111C. 10000000D. 11111110【作业1】取一个整数a从右端开始的4~7位,并把值打印到屏幕。
【作业2】在程序中声明若干个整数变量、浮点数,并将它们以二进制,十进制的格式打印在屏幕上。
二、C语言程序设计(2)1.假定x和y为double型,则表达式x=2,y=x+3/2的值是()。
A. 3.500000B. 3C. 2.000000D. 3.0000002.以下合法的赋值语句是()。
A. x=y=100B. d--;C. x+y;D. c=int(a+b);3.设正x、y均为整型变量,且x=10 y=3,则以下哪个是语句的输出结果?(d )pprintf("%d,%d\n",x--,--y);A. 10,3B. 9.3C. 9.2D.10.2【作业1】根据某个抛物线的点的x值计算y值参考公式:y=x2+2x+1【作业2】a是一个浮点数,它可能取任意值,书写表达式,求X,如果A在0~10范围内,结果X的值就为A,如果A>10,X取10,如果A<0,X就取0。
三、流程控制语句1.选择题(单选题)1.在下面的语句中,不属于循环语句的是()A.if语句B.while语句C.do-while语句D.for语句2.执行下面的程序片段,变量a的值为()int a=3 ; if(a=5) a=4;A.3 B.4C.5 D.出现编译错误2.关于for语句,以下说法正确的是()for(表达式1;表达式2;表达式3)A.表达式1不能省略B.表达式2不能省略C.表达式3不能省略D.所有表达式都可以省略【作业1】计算1到100内所有偶数的和思路分析:偶数即能够被2整除的数,利用循环语句,进行相加【作业2】使用循环语句打印“*”组成一个菱形思路分析:可以用一个等差数列来计算每一行的“*”的数量四、数组1.选择题(单选题)1.以下定义语句中,错误的是()A.int a[]={1,2}; B.char a[3];C.char s[10]="test"; D.int n=5,a[n];2.以下数组定义中不正确的是()。
c语言程序设计习题1-4章练习
![c语言程序设计习题1-4章练习](https://img.taocdn.com/s3/m/25cfab0876c66137ee061946.png)
int a=1,b=2,c=3,d=4,k;
k=a>b?a:c>d?c:d
4.已知:int a=5;则执行a+=a-=a*a;语句后,a的值为【6】。
5.下面程序的运行结果是x=【7】,y=【8】。
main( )
{ float x=4.9;int y;
y=(int)x;
char ch;
scanf("%c",&ch);
ch=(ch>=′A′&&ch<=′Z′)?(【1】):ch
printf("【2】\\n",ch);
2.下面程序段的执行结果是x=【3】,y=【4】。
inta=3,b=5,x,y;
x=a+1,b+6;
y=(a+1,b+6);
printf("x=%d,y=%d",x,y);
B)11.000000,12.000000,13
C)11.0000000,12,13
D)11,12.000000,13
15.执行以下程序后x的值为【】。
unsigned int x=65535;
printf("%d\\n",x);
A) 65535B)1C)有错误D)-1
二、填空题
1.下面程序段的功能是输出大写字母对应的小写字母的ASCII码,请填空。
12.执行下面程序段,给x、y赋值时,不能作为数据分隔符的是【】。
int x,y;
scanf("%d%d",&x,&y);
A)空格B)Tab键C)回车D)逗号
13.下面合法的语句是【】。
C语言程序设计模拟试题1(附答案)
![C语言程序设计模拟试题1(附答案)](https://img.taocdn.com/s3/m/d007f1a803d276a20029bd64783e0912a2167c0c.png)
C语言程序设计模拟试题1(附答案)《C语言程序设计》模拟试卷一一、单项选择题(每题2分,共30分)1、下列有关C语言的叙述中错误的是()。
A) C语句必须以分号结束B) 任何一个C程序中有且只有一个主函数C) 复合语句在语法上可被看作一条语句D) C程序中对数据的任何操作都可由运算符实现2、以下不能定义为用户标识符的是()。
A) MAIN B) _HJ C) 2ong D) LINE13、下列符号中用来表示C语言中的回车换行的是()。
A) \r B) \n C) \b D) \t4、如有如下定义:int a=1,则语句printf(“%d,%d”, a, ++a);的运行结果为()。
A) 1, 1 B) 1, 2 C) 2, 2 D) 2, 15、已知ch为字符型变量,下面表达式中正确的是()。
A) ch=’\xff ’B) ch=’\ff ’C) ch=’ ff ’D) ch=” ff ”6、以下能正确定义一维数组的是()。
A) int a[5]={0,1,2,3,4,5}; B) int a[5]=”012345”;C) char a[ ]=”012345”; D) char a[5]={0,1,2,3,4,5};7、以下语句中能正确定义变量并赋初值的是()。
A) char c=65; B) float f=f+1.1;C) double x=12.3e3.6; D) int m=n=2.0;8、在执行下列程序时输入:1357924,则程序的运行结果为()。
main( ){ int x, y;scanf(“%2d%2d”,&x,&y);printf(“%2d”,x*y); }A) 13 B) 1357 C) 74 D) 7419、执行下列程序段后输出的结果是()。
x = 9;while (x > 7){ printf(“*”); x- -; }A) **** B) *** C) ** D) *10、设char str1[10] = “ABCDE”, str2[10] = “xyz”;则执行语句printf(“%d”, strlen(strcpy(str1, str2))); 后的输出结果是()A) 9 B) 8 C) 5 D) 311、若用数组名作为函数调用的实参,则传递给形参的是()A) 数组的首地址 B) 数组第一个元素的值C) 数组中全部元素的值 D) 数组元素的个数12、在C程序中,若未在函数定义时说明函数类型,则函数默认的类型为()A)void B)double C)int D)char13、下面不能正确进行字符串赋值操作的语句是( )A) char s[5]={"ABCD"}; B) char s[5]; s="ABCD";C) char *s;s="ABCDEF"; D) char *s="ABCD";14、设有说明int s[5]={1,3,5,7,9}; int *p=s; 则下列表达式中值为3的是 ( )A)++p B)++(*p) C) *(++p) D) *(p+=2)15、下面程序的输出结果是()int m=13;int fun( int x, int y){ int m=3;return( x*y-m); }main( ){ int a=7,b=5;printf(“%d\n”, fun(a,b)/m); }A) 1 B) 2 C) 3 D) 10二、判断(每空1分,共10分)1、C语言有三种结构化程序设计方法,分别为顺序结构、选择结构和循环结构。
C语言程序设计_习题大全(含答案)_C语言-1
![C语言程序设计_习题大全(含答案)_C语言-1](https://img.taocdn.com/s3/m/99159089680203d8ce2f24f7.png)
C语言基础一:1.下列四组选项中,均不是C语言关健字的选项是( A )。
A) define B) gect C) include D) whileIF char scanf gotype printf case pow2.下面四个选项中,均是合法整型常量的选项是( A )。
A)160 B)-0xcdf C) -01 D)-0x48a-0xffff 01a 986,012 2e5011 0xe 0668 0x<<02>>B>>23.下面四个选项中,均是不合法的转义符的选项是( B )。
A) '\"' B) '\1011' C) '\011' D) '\abc''\\' '\' '\f' '\101''xf' '\A' '\}' 'x1f'4.下面不正确的字符串常量是( A )。
A)'abc' B)"12'12" C)"0" D)" "5.以下选项中不合法的用户标识符是( A )。
A)abc.c B)file C)Main D)PRINT6.C语言提供的合法关键字是( D )。
A) swithB) cherC) Case). Default7.下列标识符组中,合法的用户标识符为 AA)_0123与ssipedB)del-word与signedC)list与*jerD) keep%与wind8.在C语言中,逻辑值"真"的表示是用( C )。
A) true B) 整型值0 C)非另整型值 D) T9若有以下定义char s='\092';则该语句( B )A)使s的值包含一个字符 B)定义不合法,s的值不确定C)使s的值包含4个字符 D)使s的值包含3个字符10设C语言中,int类型数据占2个字节,则float类型数据占( D )个字节。
优课UOOC(深圳大学)C语言程序设计 作业一
![优课UOOC(深圳大学)C语言程序设计 作业一](https://img.taocdn.com/s3/m/562e0165b9d528ea80c77942.png)
作业一一、单选题 (共84.00分)1.下面程序的输出结果是:#include <cstdio>using namespace std;int main(){int a=3;printf("a=%d,",a);a=a+1;printf("a=%d,",a);a*=2;printf("a=%d\n",a);return 1;}A.程序出错,不能正确运行,因为a=a+1不成立B.a=3C.a=3,a=4,a=8D.a=3 a=3 a=3正确答案:C教师评语:暂无2.若有定义:int a,*p = &a;,假设变量a的指针是1000,sizeof(int)的值是4,则p+5的计算结果是_____。
A.1000B.1005C.1020D.p+5是不正确的表达式正确答案:C教师评语:暂无3.若有说明语句:int a,b;,用户的输入为111222333,结果a的值为111,b的值为333,那么以下输入正确的语句是______。
A.scanf("%*3d%3c%3d",&a,&b);B.scanf("%3d%3d%*3d",&a,&b);C.scanf("%3d%*3c%3d",&a,&b);D.scanf("%3d%*2d%3d",&a,&b);正确答案:C教师评语:暂无4.已知int x=10, y=20, z=30; 以下语句执行后,x ,y ,z 的值是_____。
if(x>y)z = x;x = y;y = z;A.x = 10, y = 20, z = 30B.x= 20, y = 30, z = 30C.x =20, y=30, z = 10D.x = 20, y = 30, z = 20正确答案:B教师评语:暂无5._____不是程序控制语句,是C语言的标准库函数,但可以用于控制程序的流程。
C语言程序设计基础知识 习题一及参考答案
![C语言程序设计基础知识 习题一及参考答案](https://img.taocdn.com/s3/m/bf34a9fc27284b73f242509a.png)
第一章:程序设计基础知识一、单项选择题1、以下( )是面向过程的程序设计语言。
A)机器语言B)汇编语言C)高级语言D)第四代语言2、程序设计一般包含以下四个步骤,其中其中首先应该完成的是( )。
A)设计数据结构和算法B)建立数学模型C)编写程序D)调试和运行程序3、以下常用算法中适合计算等差级数的算法是( )。
A)枚举法B)递推法C)分治法D)排序法4、以下不属于算法基本特征的是( )。
A)有穷性B)有效性C)可靠性D)有一个或多各输出5、以下描述中不正确的是( )。
A)程序就是软件,但软件不紧紧是程序。
B)程序是指令的集合,计算机语言是编写程序的工具。
C)计算机语言都是形式化的语言,它有一个语法规则和定义。
D)计算机语言只能编写程序而不能表示算法。
6、下面描述中,正确的是( )A)结构化程序设计方法是面向过程程序设计的主流。
B)算法就是计算方法。
C)一个正确的程序就是指程序书写正确。
D)计算机语言就是编写程序的工具而不是表示算法的工具。
7、下面描述中,不正确的是( )。
A)递归法的关键是必须有一个递归终止的条件。
B)递归算法要求语言具有反复自我调用子程序的能力。
C)对于同一个问题,递推算法比递归算法的执行时间要长。
D)递推算法总可以转换为一个递归算法。
8、N-S图与传统流程图比较,主要优点是( )。
A)杜绝了程序的无条件转移。
B)具有顺序、选择和循环三种基本结构。
C)简单、只管。
D)有利于编写程序。
A)B)C)D)二、填空题1、在流程图符号中,判断框中应该填写的的是________。
(判断条件)2、结构化程序设计是__________应遵循的方法和原则。
(面向过程编程)3、结构化程序必须用__________程序设计语言来编写。
(具有结构化控制语句)4、可以被连续执行的一条条指令的集合称为计算机的________。
(程序)5、只描述程序应该“做什么”,而不必描述“怎样做”的语言被称为________。
吉大《C语言程序设计》在线作业一答卷
![吉大《C语言程序设计》在线作业一答卷](https://img.taocdn.com/s3/m/31bf0dff4431b90d6d85c791.png)
吉大17秋学期《C语言程序设计》在线作业一-0002试卷总分:100 得分:100一、单选题(共10 道试题,共40 分)1.有以下程序:#include union pw { int i; char ch[2];}a; main(){a.ch[0]=13;a.ch[1]=0;printf("%d\n",a.i);} 程序的输出结果是A.13B.14C.208D.209本题结果:A2.假定以下程序经编译和连接后生成可执行文件PROG.EXE,如果在此可执行文件所在目录的DOS提示符下键入:PROG ABCDEFGH IJKL<回车>,则输出结果为main(int argc, char *argv[]){ while(--argc>0)printf("%s",argv[argc]); printf("\n"); }A.ABCDEFGB.IJHLC.ABCDEFGHIJKLD.IJKLABCDEFGH本题结果:D3.设有以下说明语句struct ex { int x ; float y; char z ;} example; 则下面的叙述中不正确的是A.struct结构体类型的关键字B.example是结构体类型名C.x,y,z都是结构体成员名D.struct ex是结构体类型名本题结果:B4.设有int x=11;则表达式(x++*1/3)的值是A.3B.4C.11D.12本题结果:A5.请选出可用作C语言用户标识符的是A.void,define,WORDB.a3_b3,_123,IFC.FOR,--abc,CaseD.2a,Do,Sizeof本题结果:B6.C语言允许函数类型缺省定义,此时函数值隐含的类型是A.float。
C语言程序设计练习一
![C语言程序设计练习一](https://img.taocdn.com/s3/m/74a2db6fbb68a98271fefac1.png)
《C语言程序设计》练习一一、单项选择题1.下面转义字符中,表示字符串结束的是()A.\ rB.\ nC.\ 0D.\ f2.在Turbo C2.0中,若定义unsigned int a;则变量a在内存中分配的字节数是()A.1个B.2个C.4个D.8个3.设有int x=2,y,z;执行z=y=x--;后,变量z的值是()A.0B.1C.2D.34.以十六进制形式输出整数的格式说明符是()A.%uB.%ldC.%xD.%o5.下面合法的if语句是()A.if(a=b) c++;B.if(a=<b) c++;C.ifi(a< >b) c++;D.if(a=>b) c++;6.结束while(表达式)循环的条件是()A.当表达式的值为0时B.当表达式的值不为0时C.当表达式的值为1时D.当表达式的值为非1时7.若有定义int a[3][5];则数组a在内存中占用的字节数是()A.8B.15C.16D.308.在C语言中,当函数返回值的类型缺省时,表示该函数返回值的类型是()A.charB.floatC.longD.int9.若有说明:int *p,m=5,n;以下正确的程序段是()A.p=&n;B.p=&n;scanf(〃%d〃,n); scanf(〃%d〃,*p);C.scanf(〃%d〃,&n);D.p=&n;p=n; *p=m;10.变量的指针,其含义是指该变量的()A.值B.地址C.名D.一个标志116.结构体是C提供的一种专门处理彼此相互有联系,数据类型()A.不一致的多个数据的数据结构B.不一致的单个数据的数据结构C.一致的多个数据的数据结构D.一致的单个数据的数据结构11.下面列出的位运算符中,表示按位与操作的是()A.~B.&C.^D.|12.设有说明:int x=0x03,y=3;表达式x&~y的值是()A.0B.1C.2D.319.设有说明:int u=1,v=3,w=2;表达式(v>>1|u<<2)&w的值是()A.0B.1C.3D.513.设有说明:FILE *fp;char *filename=〃paper〃;对于fp=fopen(filename,〃rb+〃);语句,下面说法正确的是()A.打开名为filename的文件读写B.打开名为paper的文件读写C.打开名为filename的文件只读D.打开名为paper的文件只读14. 设有int a=3, b=-4, c=5;表达式(a<b)? a+b:(a-b,b+4,a-=b+4)的值是()A. –1B. 0C. 3D. 715. 若有下列程序段,欲使a=2、b=3,对应正确的数据输入方法是()(其中<CR>表示换行)int a, b;scanf(″a=%d b=%d″,&a, &b);A. 2<CR>B. a=2 b=3<CR>C. a=2, b=3<CR>D. 2,3<CR>3<CR>16. 下面程序段的输出结果是()main(){ int s, p;s=p=5;p=++s;p++; ++p;2}A. 5B. 6C. 7D. 8的是()17. 下列if语句中,有语法错误..A. if(x>y);B. if(x=y) x+y;C. if(x!=y) scanf(″%d″, &x) else scanf(″%d″,&y)D. if(x<y) {x++; y++;}18. 下面程序段执行后的输出结果是()int i=-1;if(i<=0) printf(″* * * * \n″);else printf(″%%%%\n″);A. ****B.%%%%C. %%%%cD. ****c19. 下面程序段的循环次数是()int k=2;while(k==0) printf(″%d″,k);k--; printf(″\n″);A. 0次B. 1次C. 2次D. 无限次20. 下面程序段的输出结果是()a=100;while(a>120);a=a+1;printf(″%d″,a);A. 100B. 101C. 120D. 12121. 下面程序执行后,i的值是()main( ){ int a [5]={1,2,3,4,5},i=23}A. 1B. 2C. 3D. 422. 下面程序的输出结果是()main( ){ int i, x[3][3]={9,8,7,6,5,4,3,2,1};for(i=0;i<4;i+=2) printf(″%d″, x[i][1]);}A. 5 1B. 5 2C. 8 2D. 9 323. 在C程序中,若用基本数据类型所定义的变量调用函数,正确的说法是()A. 由系统自动指定对应实参和形参是否共用存储单元B. 对应实参和形参各占一个独立的存储单元C. 对应实参和形参共用一个存储单元D. 可以由用户指定对应实参和形参是否共用存储单元24. 下面叙述中不.正确的是()A. 不同函数中可以使用相同名字的变量B. 形式参数是局部变量C. 在一个函数内部定义的变量只能在本函数范围内有效D. 在一个函数内部的复合语句中定义的变量在本函数范围内有效25. 设有语句int a[4][10],*p=*a;则下面表达式中属于地址表达式的是()A. a[1][2]B. a[1]C. *(p+1*10+2)D. *(a[1]+2)的是()26. 下面定义不正确...A. struct starB. struct star{ {int id int id;char *name; char *name;4} star1={1001, ″Moon″}; }; star1={1001, ″Moon″};C. structD. struct star{ {int id; int id;char *name; char *name;} star1={123, ″Sun″}; } star1;27. 下面各个位运算符的优先级从左到右依次升高的是()A. | ^ & >>B. ^ >> & ~C. << | ^ ~D. ~ | & >>28. 设有说明:int u=1, v=14;表达式u+v>>2的值是()A. 0B. 3C. 5D. 729. 如果将文件指针fp指向文件末尾,正确的语句是()A. feof(fp);B. rewind(fp);C. fseek(fp,0L,0);D. fseek(fp,0L,2);完成的功能是()30. 下面程序段中,不能..FILE *fp;char ch =′v′;fp=fopen(″boy″, ″rb+″);fputc(ch,fp);A. 建立文件指针fp与文件boy的联系B. 从boy文件中读取一个字符C. 向boy文件中写一个字符D. 打开名为boy的二进制文件31.设有int a =3, b=-4, c=0;表达式((a>b)?a:b)&&c<0的值是()A.-4B.0C.1D.332.若有下列程序段,欲使a=2、b=3,对应正确的数据输入方法是()(其中<CR>表示换行)int a, b;scanf(″a=%d, b=%d″,&a,&b);A.2<CR>B.a=2 b=3<CR>C.a=2, b=3<CR>D.2,3<CR>3<CR>533.下面程序段的输出结果是()main( ){ int s, p;s=p=5;p=--s;p++;++p;printf(″%d\n″,p);}A.5B.6C.7D.834.关于if语句下面叙述正确的是()A.只有当if语句中表达式的值等于1时,才执行if的内嵌语句B.只有当if语句中表达式的值为假时,才执行if的内嵌语句C.只有当if语句中表达式的值等于0时,才执行if的内嵌语句D.只要if语句中表达式的值非0时,就执行if的内嵌语句35.若执行下面程序时,从键盘输入数据3和4,则程序的输出结果是()main( ){ int a,b,s;scanf(″%d″, &a,&b);s=a;if(a<b) s=bs=s*s;printf(″%d″,s);}A.9B.12C.16D.2536.若int x=0; 则while(x==0); 的循环次数是()A.0B.1C.2D.无限次37.下面程序段的输出结果是()6for (i=1; i<3;i++){for (j=1;j<3;j++)printf(″%d ″, i+j);printf(″\n″);}A.2 3 3 4B.2 3 4C.2 3D.23 4 3 438.下面程序的输出结果是()mian ( ){ int a[5]={2,4,6,8,10},i;i=2;printf(″%d″,a[i++]);}A.2B.4C.6D.839.下面程序的输出结果是()main( ){ int a[3][4]={1,3,5,7,9,11,13,15,17,19,21,23};int i,j,k=0;for(i=0;i<3;i++)k=k+a[i][0];printf(″%d\n″,k);}A.27B.33C.39D.4540.以下正确的函数定义形式是()A. double fun(int x, int y)B. double fun(int x; int y)C. double fun(int x, int y);D. double fun(int x, y);的说法是()41.关于变量以下不正确...A.在不同函数中可以使用相同名字的变量B.形式参数是全局变量7C.在函数内定义的变量只在本函数范围内有效D.在函数内的复合语句中定义的变量是局部变量地址表达式的是()42.设有语句int a[4][10],*p=*a;则下列表达式中不是..A.&a[1][2]B.a[3]C.*(p+1*10+2)D.p+1*10+2的是()43.下面关于结构体类型变量定义不正确...A. struct scoreB. struct{ {int math; int math;int Chinese; int Chinese;}Li, Wang; }Li, Wang;C. struct scoreD. struct score{ {int math; int math;int Chinese; int Chinese;}; };Li, Wang;struct score Li, Wang;44.下面各个运算符的优先级从左到右依次降低的是()A.& >> | ^B.~ & >>|C.>> & ^ |D.~ >> & ^45.设有说明:int u=1, v=2;表达式:u+v<<2的值是()A.-1B.1C.9D.1246.下面程序段中,不.能完成的功能是()FILE *fp;char ch;fp=fopen(″file1″, ″rb+″);ch=fgetc(fp);A.建立文件指针fp与文件file1的联系B.从file1文件中读一个字符C.向file1文件中写一个字符D.打开名为file1的二进制文件的是()47.在格式:fread(stu,size,n,fp);中,下面说法不正确...89A.stu 是内存中存放数据的首地址B.n 表示读n 次C.size 是一个数据块的字节数D.fp 表示文件指针48.字符串常数“CHINA ”在内存中存储时占的字节数是( )A .5个B .6个C .7个D .8个49.如果a=1,b=2,c=3,d=4,则表达式a>b?a:c<d?c:d 的值是( )A .1B .2C .3D .450.输出字符串的格式说明符是( )A .%cB .%sC .%uD .%g 51.设有说明int x=0,y=0;则执行if(x++)y=1+x;else y=2+x ;后,变量y 的值是( )A .0B .1C .2D .3 52.以下程序段所表示的数学函数关系是( )y=-1if(x!=0) if(x>0) y=1;else y=0;A .⎪⎩⎪⎨⎧>=<-=)0(1)0(0)0(1x x x yB .⎪⎩⎪⎨⎧>=-<=)0(0)0(1)0(1x x x yC .⎪⎩⎪⎨⎧>=-<=)0(1)0(1)0(0x x x yD .⎪⎩⎪⎨⎧>=<-=)0(0)0(1)0(1x x x y 53.执行下面程序段后,输出字符A 的个数是( )for(i=0;i<=5;i+=2)printf(″A ″);A.0个B.3个C.5个D.6个54.若有定义char a[ ]= ″computer″;则存储字符m的数组元素是()A.a[1] B.a[2] C.a[3] D.a[4]55.若有定义int a [4]={1,2,3,4};则a[a[3]-a[1]*a[1]]的值是()A.1 B.2 C.3 D.412.凡是函数中未指定存储类别的局部变量,其隐含的存储类别为()A.自动(auto)B.静态(static)C.外部(extern) D.寄存器(register)56.如果一个C程序仅由一个源文件组成,则在一个源文件中定义的全局变量的作用域为()A.源文件的全部范围B.本程序的全部范围C.本函数的全部范围D.从定义该变量的位置开始至本文件末尾指针数组定义的是()57.下列定义中,不是..A.int*p[5];B.float*q[4];C.int(*r)[6];D.char*w[7];58.若有语句int*point,a=4;和point=&a;下面代表地址的一组选项是()A.a,point,*&a B.&*a,&a,*pointC.*&point,*point,&a D.&a,&*point,point59.下列程序的运行结果是()#difine N 9fun (char s[ ]){char*p=s+4,*q=s;int i;for(i=0;i<4;i+ +,p+ +,q + +){s[i]=*p;s[i+4]=*q}10}main( ){char ss[N]= ″ABCDEFGH″;fun(ss)printf(″%s\n″,ss);}A.EFGHABCD B.EFGHEFGH C.ABCDEFGH D.ABCDABCD60.设有结构体的定义如下:()struct cjd {long bh;int*q;char xm[9];};则sizeof(struct cjd)的值是A.14 B.15 C.16 D.1761.设有说明:int x=0x15,y=0x0f;则x&y的结果是()A.0x5 B.0x15 C.0xf0 D.0xf562.如果在程序中要使用系统提供的函数strlen,则需要书写的编译预处理命令是()A.#include<stdio.h> B.#include<math.h>C.#incLude<string.h> D.#incLude<malloc.h>63.由FILE*fp;fp=fopen(″a:\\abc.txt″,″r+″);可以推知fopen 函数的原型是()A.char *fopen(char,char);B.FILE*fopen(char*,char*);C.int fopen (char*,char*); D.FILF fopen(char* ,char*);64.整数-2在机器内存中的表示是()A.1000000000000010 B.1111111111111110 C.11111111111111101 D.111111111111111165.下列运算符中优先级最低的是()11A.> B.! C.% D.= =66.设有int a=3,b=-4,c=5;表达式+ +a-c+b+ +的值是()A.-6 B.-5 C.-4 D.-367.以十进制无符号形式输出整数的格式说明符是()A.%u B.%x C.%o D.%d69.下列程序段的输出结果是()void main(void){iny y=1,x=5;if(x<0)y=-1;if(x>=0)y=0;printf("%d\n",y);}A.-1 B.0 C.1 D.569.执行如下程序段后,x的值是()int x=1,y=-1;if(y<0)x-=y;else x+=y;A.-1 B.0 C.1 D.270.执行while(表达式)循环的条件是()A.当表达式的值为0时B.仅当表达式的值为1时C.当表达式的值非0时D.当表达式的值不为1时71.下列程序段输出的结果是()for(i=1;i<3;i+ +)for(j=1;j<3;j+ +)12printf("%d",i+j);A.2 3 3 4 B.2 3 4C.2 3 D.23 4 3 472.若有定义int s[4]={1,2,3,4};则a[a[2]-3*a[0]+1]的值是()A.1 B.2 C.3 D.473.下列关于C语言程序说法正确的是()A.C语言程序总是从有定义的函数起顺序执行B.在C语言程序中,被调用函数必须在main函数中定义C.C语言程序中的main函数必须放在程序的开始部分D.C语言程序总是从main函数起开始执行74.若有int a[ ]={1,2,3,4,5,6,7,8,9,10},且0≤i<10,则对数组元素地址正确表示的是()A.&a+1 B.&a+ + C.&a D.&a[i]75.下列关于结构体类型定义正确的是()A.struct ABC B.struct ABC{ {int a int a;char b char b;char*p char * p;} }C.struct ABC D.struct ABC{ {int a; int a,char b; char b,char * p; char *p,13}; };76.下列位运算符中,表示按位异或操作的是()A.~ B.│C.^ D.&77.下列各个位运算符的优先级从左到右依次升高的是()A.>>│& ~B.│>> & ~C.│& >> ~D.~│& >> 78.设有说明:int u=1,v=3;则表达式u<<= v的值是()A.0 B.1C.3 D.879.如果文件存储的是数据在内存中存放的字节形式,则该文件是()A.ASCII文件B.文本文件C.二进制文件D.设备文件80.下列转义字符中,表示回车的是()A.\0 B.\n C.\r D.\f81.若定义double d;则d在内存中分配的字节数是()A.1个B.2个C.4个D.8个82.下列表达式中运算结果为3的表达式是()A.(-7)%4 B.7/4+2 C.7/4*4-4 D.8/3+8/3 83.设有int a=3,b=-4,c=5;表达式a++-c+b++的值是()A.-6 B.-5 C.-4 D.-384.在printf语句中,格式说明符u表示()A.以十进制带符号形式输出整数B.以十六进制带符号形式输出整数C.以十进制无符号形式输出整数D.以十六进制无符号形式输出整数1485.若有int a=3,b=4,c=5,d=6,x=4;执行下列程序段后x的值是()if(a<b){if(c= =d)x=c;}elsex=d++A.4 B.5 C.6 D.786.关于switch中的表达式,正确的说法是()A.它必须是算术表达式B.它必须是关系表达式C.它必须是逻辑表达式D.它可以是任意类型的表达式87.对do语句while(表达式);结构的循环,下列说法正确的是()A.当表达式的值为非零时不执行循环体B.循环体至少被执行一次C.当表达式的值为零时循环体一次也不执行D.循环体仅被执行一次88.只能在循环语句中用于结束本轮循环的语句是()A.break; B.continue; C.goto D.if89.若有定义int a[3][5];则数组a在内存中分配的字节数是()A.8 B.15 C.24 D.3090.已知strl和str2是字符串数组,下列哪一个函数能正确的完成字符串的输入?()A.gets(strl) B.gets(strl,str2) C.getchar(strl) D.getchar(strl,str2) 91.下列关于函数的描述中正确的是()15A.C程序中有调用关系的所有模块必须放在同一个源文件中B.函数必须有返回值,否则不能使用函数C.C程序必须由一个或一个以上函数构成D.C函数既可以嵌套定义又可以嵌套调用92.设有下列程序,则()int d=10;main(){int a=3;printf(“%d,%d\n”,a,d);}A.a是全局变量,d是全局变量B.a是局部变量,d是全局变量C.a是全局变量,d是局部变量D.a是局部变量,d是局部变量93.若有说明:int*p1,*p2,m=5,n;以下进行赋值的语句中合理的是()A.p1=m; B.&p2=n; C.pl=&m;p2=p1; D.*p1=&m;94.下列为指针数组定义的是()A.float(*)[6]; B.float p[6]; C.float(*)(); D.float *p[6];95.设有说明:FILE*fp;对于fp=fopen(″c:\\abc.dat″,″rb″);语句,下列说法中不正确的是()A.fp将指向abc.dat文件B.以只读方式打开二进制文件C.打开文件的文件名是abc.datD.以读写方式打开ASCII码文件96.ASCII码文件的结束可以用符号常量EOF表示。
新编C语言程序设计教程练习一参考答案
![新编C语言程序设计教程练习一参考答案](https://img.taocdn.com/s3/m/f8c4db19a8114431b90dd8c9.png)
练习一1.1写出最简单的C程序。
答:void main( ){}1.2用一条C语句完成下述要求。
a)把变量x,y,z和result定义为int类型。
b)提示用户输入三个整数。
c)从键盘读取三个整数并把它们存储在变量x,y,z中。
d)计算变量x,y和z所存储的整数的和,并把计算结果赋给变量result.e)打印出“The sum is ”并紧接着打印出变量result的值。
答:a)int x, y, z, result;b)printf(〞请输入三个整数\n〞);c)scanf(〞%d%d%d〞, &x, &y, &z);d)result = x + y + z;e)printf(〞The sum is %d〞, result);1.3用练习1.2中的语句写出计算三个整数和的完整的程序。
答:void main( ){int x, y, z, result;printf(〞请输入三个整数\n〞);scanf(〞%d%d%d〞, &x, &y, &z);result = x + y + z;printf(〞The sum is %d〞, result);}1.4指出并改正下列语句中的错误(每条语句可能不止一个错误)。
a)scanf(〞%d,value〞);b)printf(〞The sum of %d and %d is %d〞\n,x,y);c)*/Program to determine the largest of three in integers/*d)p r intf(〞The value you entered is %d〞\n,&value);e)int return=10;答:a)scanf(〞%d〞, &value);b)printf(〞The sum of %d and %d is %d\n〞, x, y, x + y);c)/* Program to determine the largest of three in integers*/d)p r intf(〞The value you entered is %d\n〞, value);e)int ret=10;//关键字不能作变量名1.5 在VC6.0中编译运行程序1-1,1-4和练习1.3所写的程序。
C语言程序设计试题第1套(山东建筑大学)
![C语言程序设计试题第1套(山东建筑大学)](https://img.taocdn.com/s3/m/1fbac8ca580216fc710afd29.png)
C语言程序设计试题(第1套)一.单项选择题〔30分,每题2分〕1.用C语言编写的代码程序______。
A、可立即执行B、是一个源程序C、经过编译即可执行D、经过编译解释才能执行2. C语言中用于结构化程序设计的三种根本结构是______。
A、顺序结构、选择结构、循环结构B、 if、switch、breakC、 for、while、do-whileD、 if、for、continue3. 以下选项中合法的实型常数是______。
A、5E2.0B、 E-3 C4. 假定x和y为 double型,那么表达式x=2,y=x+3/2的值是______。
A、 3.500000B、 3C、 2.0000005. ch是字符型变量,下面不正确的赋值语句是______。
A、ch = 65;B、 ch="a";C、 ch ='\ n';D、 ch= 9+ '0';6. 以下有关C语言程序书写格式的说法哪个是错误的?A、 C程序的书写格式比拟自由,一个语句可以占多行,一行也可以有多个语句。
B、 C语句必须要有分号。
C、 C语言程序的标识符必须使用小写字母。
D、用{ } 括起来的局部,通常表示了程序的某一层次结构,称为块。
7.下面程序段所表示的数学函数关系是______。
x= -1;if (a!=0)if (a>0) x=1;else x=0;-1 (a<0) 1 (a<0)A、x= 0 (a=0)B、x= -1 (a=0)1 (a>0) 0 (a>0)0 (a<0) -1 (a<0)C、x= -1 (a=0)D、x= 1 (a=0)1 (a>0) 0 (a>0)8. 以下关于do-while循环的不正确描述是______。
A) do-while的循环体至少执行一次B) do-while的循环体可以是复合语句C) 在do-while循环体中,一定要有能使while后面表达式的值变为零("假")的操作D) do-while循环由do开始,用while结束,在while(表达式)后面不能写分号9. 以下程序执行后sum的值是______。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
《C语言程序设计》练习一一、单项选择题1.下面转义字符中,表示字符串结束的是()A.\ rB.\ nC.\ 0D.\ f2.在Turbo C2.0中,若定义unsigned int a;则变量a在内存中分配的字节数是()A.1个B.2个C.4个D.8个3.设有int x=2,y,z;执行z=y=x--;后,变量z的值是()A.0B.1C.2D.34.以十六进制形式输出整数的格式说明符是()A.%uB.%ldC.%xD.%o5.下面合法的if语句是()A.if(a=b) c++;B.if(a=<b) c++;C.ifi(a< >b) c++;D.if(a=>b) c++;6.结束while(表达式)循环的条件是()A.当表达式的值为0时B.当表达式的值不为0时C.当表达式的值为1时D.当表达式的值为非1时7.若有定义int a[3][5];则数组a在内存中占用的字节数是()A.8B.15C.16D.308.在C语言中,当函数返回值的类型缺省时,表示该函数返回值的类型是()A.charB.floatC.longD.int9.若有说明:int *p,m=5,n;以下正确的程序段是()A.p=&n;B.p=&n;scanf(〃%d〃,n); scanf(〃%d〃,*p);C.scanf(〃%d〃,&n);D.p=&n;p=n; *p=m;10.变量的指针,其含义是指该变量的()A.值B.地址C.名D.一个标志16.结构体是C提供的一种专门处理彼此相互有联系,数据类型()A.不一致的多个数据的数据结构B.不一致的单个数据的数据结构C.一致的多个数据的数据结构D.一致的单个数据的数据结构11.下面列出的位运算符中,表示按位与操作的是()A.~B.&C.^D.|12.设有说明:int x=0x03,y=3;表达式x&~y的值是()A.0B.1C.2D.319.设有说明:int u=1,v=3,w=2;表达式(v>>1|u<<2)&w的值是()A.0B.1C.3D.513.设有说明:FILE *fp;char *filename=〃paper〃;对于fp=fopen(filename,〃rb+〃);语句,下面说法正确的是()A.打开名为filename的文件读写B.打开名为paper的文件读写C.打开名为filename的文件只读D.打开名为paper的文件只读14. 设有int a=3, b=-4, c=5;表达式(a<b)? a+b:(a-b,b+4,a-=b+4)的值是()A. –1B. 0C. 3D. 715. 若有下列程序段,欲使a=2、b=3,对应正确的数据输入方法是()1(其中<CR>表示换行)int a, b;scanf(″a=%d b=%d″,&a, &b);A. 2<CR>B. a=2 b=3<CR>C. a=2, b=3<CR>D. 2,3<CR> 3<CR>16. 下面程序段的输出结果是()main(){ int s, p;s=p=5;p=++s;p++; ++p;printf(″%d\n″,p);}A. 5B. 6C. 7D. 817. 下列if语句中,有语法错误..的是()A. if(x>y);B. if(x=y) x+y;C. if(x!=y) scanf(″%d″, &x) else scanf(″%d″,&y)D. if(x<y) {x++; y++;}18. 下面程序段执行后的输出结果是()int i=-1;if(i<=0) printf(″* * * * \n″);else printf(″%%%%\n″);A. ****B.%%%%C. %%%%cD. ****c19. 下面程序段的循环次数是()int k=2;while(k==0) printf(″%d″,k);k--; printf(″\n″);A. 0次B. 1次C. 2次D. 无限次20. 下面程序段的输出结果是()a=100;while(a>120);a=a+1;printf(″%d″,a);A. 100B. 101C. 120D. 121221. 下面程序执行后,i的值是()main( ){ int a [5]={1,2,3,4,5},i=2printf(″%d″,a[i++]);}A. 1B. 2C. 3D. 422. 下面程序的输出结果是()main( ){ int i, x[3][3]={9,8,7,6,5,4,3,2,1};for(i=0;i<4;i+=2) printf(″%d″, x[i][1]);}A. 5 1B. 5 2C. 8 2D. 9 323. 在C程序中,若用基本数据类型所定义的变量调用函数,正确的说法是()A. 由系统自动指定对应实参和形参是否共用存储单元B. 对应实参和形参各占一个独立的存储单元C. 对应实参和形参共用一个存储单元D. 可以由用户指定对应实参和形参是否共用存储单元24. 下面叙述中不.正确的是()A. 不同函数中可以使用相同名字的变量B. 形式参数是局部变量C. 在一个函数内部定义的变量只能在本函数范围内有效D. 在一个函数内部的复合语句中定义的变量在本函数范围内有效25. 设有语句int a[4][10],*p=*a;则下面表达式中属于地址表达式的是()A. a[1][2]B. a[1]C. *(p+1*10+2)D. *(a[1]+2)26. 下面定义不正确...的是()A. struct starB. struct star{ {int id int id;char *name; char *name;} star1={1001, ″Moon″}; }; star1={1001, ″Moon″};C. structD. struct star{ {int id; int id;char *name; char *name;} star1={123, ″Sun″}; } star1;327. 下面各个位运算符的优先级从左到右依次升高的是()A. | ^ & >>B. ^ >> & ~C. << | ^ ~D. ~ | & >>28. 设有说明:int u=1, v=14;表达式u+v>>2的值是()A. 0B. 3C. 5D. 729. 如果将文件指针fp指向文件末尾,正确的语句是()A. feof(fp);B. rewind(fp);C. fseek(fp,0L,0);D. fseek(fp,0L,2);30. 下面程序段中,不能..完成的功能是()FILE *fp;char ch =′v′;fp=fopen(″boy″, ″rb+″);fputc(ch,fp);A. 建立文件指针fp与文件boy的联系B. 从boy文件中读取一个字符C. 向boy文件中写一个字符D. 打开名为boy的二进制文件31.设有int a =3, b=-4, c=0;表达式((a>b)?a:b)&&c<0的值是()A.-4B.0C.1D.332.若有下列程序段,欲使a=2、b=3,对应正确的数据输入方法是()(其中<CR>表示换行)int a, b;scanf(″a=%d, b=%d″,&a,&b);A.2<CR>B.a=2 b=3<CR>C.a=2, b=3<CR>D.2,3<CR>3<CR>33.下面程序段的输出结果是()main( ){ int s, p;s=p=5;p=--s;p++;++p;printf(″%d\n″,p);}A.5B.6C.7D.834.关于if语句下面叙述正确的是()A.只有当if语句中表达式的值等于1时,才执行if的内嵌语句B.只有当if语句中表达式的值为假时,才执行if的内嵌语句C.只有当if语句中表达式的值等于0时,才执行if的内嵌语句D.只要if语句中表达式的值非0时,就执行if的内嵌语句435.若执行下面程序时,从键盘输入数据3和4,则程序的输出结果是()main( ){ int a,b,s;scanf(″%d″, &a,&b);s=a;if(a<b) s=bs=s*s;printf(″%d″,s);}A.9B.12C.16D.2536.若int x=0; 则while(x==0); 的循环次数是()A.0B.1C.2D.无限次37.下面程序段的输出结果是()for (i=1; i<3;i++){for (j=1;j<3;j++)printf(″%d ″, i+j);printf(″\n″);}A.2 3 3 4B.2 3 4C.2 3D.23 4 3 438.下面程序的输出结果是()mian ( ){ int a[5]={2,4,6,8,10},i;i=2;printf(″%d″,a[i++]);}A.2B.4C.6D.839.下面程序的输出结果是()main( ){ int a[3][4]={1,3,5,7,9,11,13,15,17,19,21,23};int i,j,k=0;for(i=0;i<3;i++)k=k+a[i][0];printf(″%d\n″,k);}5A.27B.33C.39D.4540.以下正确的函数定义形式是()A. double fun(int x, int y)B. double fun(int x; int y)C. double fun(int x, int y);D. double fun(int x, y);41.关于变量以下不正确...的说法是()A.在不同函数中可以使用相同名字的变量B.形式参数是全局变量C.在函数内定义的变量只在本函数范围内有效D.在函数内的复合语句中定义的变量是局部变量42.设有语句int a[4][10],*p=*a;则下列表达式中不是..地址表达式的是()A.&a[1][2]B.a[3]C.*(p+1*10+2)D.p+1*10+243.下面关于结构体类型变量定义不正确...的是()A. struct scoreB. struct{ {int math; int math;int Chinese; int Chinese;}Li, Wang; }Li, Wang;C. struct scoreD. struct score{ {int math; int math;int Chinese; int Chinese;}; };Li, Wang;struct score Li, Wang;44.下面各个运算符的优先级从左到右依次降低的是()A.& >> | ^B.~ & >>|C.>> & ^ |D.~ >> & ^45.设有说明:int u=1, v=2;表达式:u+v<<2的值是()A.-1B.1C.9D.1246.下面程序段中,不.能完成的功能是()FILE *fp;char ch;fp=fopen(″file1″, ″rb+″);ch=fgetc(fp);A.建立文件指针fp与文件file1的联系B.从file1文件中读一个字符C.向file1文件中写一个字符D.打开名为file1的二进制文件67 47.在格式:fread(stu,size,n,fp);中,下面说法不正确...的是( )A.stu 是内存中存放数据的首地址B.n 表示读n 次C.size 是一个数据块的字节数D.fp 表示文件指针48.字符串常数“CHINA ”在内存中存储时占的字节数是( )A .5个B .6个C .7个D .8个49.如果a=1,b=2,c=3,d=4,则表达式a>b?a:c<d?c:d 的值是( )A .1B .2C .3D .450.输出字符串的格式说明符是( )A .%cB .%sC .%uD .%g51.设有说明int x=0,y=0;则执行if(x++)y=1+x;else y=2+x ;后,变量y 的值是( )A .0B .1C .2D .352.以下程序段所表示的数学函数关系是( )y=-1if(x!=0) if(x>0) y=1;else y=0;A .⎪⎩⎪⎨⎧>=<-=)0(1)0(0)0(1x x x y B .⎪⎩⎪⎨⎧>=-<=)0(0)0(1)0(1x x x yC .⎪⎩⎪⎨⎧>=-<=)0(1)0(1)0(0x x x yD .⎪⎩⎪⎨⎧>=<-=)0(0)0(1)(1x x x y53.执行下面程序段后,输出字符A 的个数是( )for(i=0;i<=5;i+=2)printf(″A ″);A .0个B .3个C .5个D .6个54.若有定义char a[ ]= ″computer ″;则存储字符m 的数组元素是( )A .a[1]B .a[2]C .a[3]D .a[4]55.若有定义int a [4]={1,2,3,4};则a[a[3]-a[1]*a[1]]的值是( )A .1B .2C .3D .412.凡是函数中未指定存储类别的局部变量,其隐含的存储类别为( )A .自动(auto )B .静态(static )C .外部(extern)D .寄存器(register )56.如果一个C 程序仅由一个源文件组成,则在一个源文件中定义的全局变量的作用域为()A.源文件的全部范围B.本程序的全部范围C.本函数的全部范围D.从定义该变量的位置开始至本文件末尾57.下列定义中,不是..指针数组定义的是()A.int*p[5];B.float*q[4];C.int(*r)[6];D.char*w[7];58.若有语句int*point,a=4;和point=&a;下面代表地址的一组选项是()A.a,point,*&a B.&*a,&a,*pointC.*&point,*point,&a D.&a,&*point,point59.下列程序的运行结果是()#difine N 9fun (char s[ ]){char*p=s+4,*q=s;int i;for(i=0;i<4;i+ +,p+ +,q + +){s[i]=*p;s[i+4]=*q}}main( ){char ss[N]= ″ABCDEFGH″;fun(ss)printf(″%s\n″,ss);}A.EFGHABCD B.EFGHEFGH C.ABCDEFGH D.ABCDABCD 60.设有结构体的定义如下:()struct cjd {long bh;int*q;char xm[9];};则sizeof(struct cjd)的值是A.14 B.15 C.16 D.1761.设有说明:int x=0x15,y=0x0f;则x&y的结果是()A.0x5 B.0x15 C.0xf0 D.0xf562.如果在程序中要使用系统提供的函数strlen,则需要书写的编译预处理命令是()A.#include<stdio.h> B.#include<math.h>C.#incLude<string.h> D.#incLude<malloc.h>863.由FILE*fp;fp=fopen(″a:\\abc.txt″,″r+″);可以推知fopen 函数的原型是()A.char *fopen(char,char);B.FILE*fopen(char*,char*);C.int fopen (char*,char*); D.FILF fopen(char* ,char*);64.整数-2在机器内存中的表示是()A.1000000000000010 B.1111111111111110 C.11111111111111101 D.111111111111111165.下列运算符中优先级最低的是()A.> B.! C.% D.= =66.设有int a=3,b=-4,c=5;表达式+ +a-c+b+ +的值是()A.-6 B.-5 C.-4 D.-367.以十进制无符号形式输出整数的格式说明符是()A.%u B.%x C.%o D.%d69.下列程序段的输出结果是()void main(void){iny y=1,x=5;if(x<0)y=-1;if(x>=0)y=0;printf("%d\n",y);}A.-1 B.0 C.1 D.569.执行如下程序段后,x的值是()int x=1,y=-1;if(y<0)x-=y;else x+=y;A.-1 B.0 C.1 D.270.执行while(表达式)循环的条件是()A.当表达式的值为0时B.仅当表达式的值为1时C.当表达式的值非0时D.当表达式的值不为1时71.下列程序段输出的结果是()for(i=1;i<3;i+ +)for(j=1;j<3;j+ +)printf("%d",i+j);A.2 3 3 4 B.2 3 4C.2 3 D.293 4 3 472.若有定义int s[4]={1,2,3,4};则a[a[2]-3*a[0]+1]的值是()A.1 B.2 C.3 D.473.下列关于C语言程序说法正确的是()A.C语言程序总是从有定义的函数起顺序执行B.在C语言程序中,被调用函数必须在main函数中定义C.C语言程序中的main函数必须放在程序的开始部分D.C语言程序总是从main函数起开始执行74.若有int a[ ]={1,2,3,4,5,6,7,8,9,10},且0≤i<10,则对数组元素地址正确表示的是()A.&a+1 B.&a+ + C.&a D.&a[i]75.下列关于结构体类型定义正确的是()A.struct ABC B.struct ABC{ {int a int a;char b char b;char*p char * p;} }C.struct ABC D.struct ABC{ {int a; int a,char b; char b,char * p; char *p,}; };76.下列位运算符中,表示按位异或操作的是()A.~ B.│C.^ D.&77.下列各个位运算符的优先级从左到右依次升高的是()A.>>│& ~B.│>> & ~C.│& >> ~D.~│& >>78.设有说明:int u=1,v=3;则表达式u<<= v的值是()A.0 B.1C.3 D.879.如果文件存储的是数据在内存中存放的字节形式,则该文件是()A.ASCII文件B.文本文件C.二进制文件D.设备文件80.下列转义字符中,表示回车的是()10A.\0 B.\n C.\r D.\f81.若定义double d;则d在内存中分配的字节数是()A.1个B.2个C.4个D.8个82.下列表达式中运算结果为3的表达式是()A.(-7)%4 B.7/4+2 C.7/4*4-4 D.8/3+8/3 83.设有int a=3,b=-4,c=5;表达式a++-c+b++的值是()A.-6 B.-5 C.-4 D.-384.在printf语句中,格式说明符u表示()A.以十进制带符号形式输出整数B.以十六进制带符号形式输出整数C.以十进制无符号形式输出整数D.以十六进制无符号形式输出整数85.若有int a=3,b=4,c=5,d=6,x=4;执行下列程序段后x的值是()if(a<b){if(c= =d)x=c;}elsex=d++A.4 B.5 C.6 D.786.关于switch中的表达式,正确的说法是()A.它必须是算术表达式B.它必须是关系表达式C.它必须是逻辑表达式D.它可以是任意类型的表达式87.对do语句while(表达式);结构的循环,下列说法正确的是()A.当表达式的值为非零时不执行循环体B.循环体至少被执行一次C.当表达式的值为零时循环体一次也不执行D.循环体仅被执行一次88.只能在循环语句中用于结束本轮循环的语句是()11A.break; B.continue; C.goto D.if89.若有定义int a[3][5];则数组a在内存中分配的字节数是()A.8 B.15 C.24 D.3090.已知strl和str2是字符串数组,下列哪一个函数能正确的完成字符串的输入?()A.gets(strl) B.gets(strl,str2) C.getchar(strl) D.getchar(strl,str2)91.下列关于函数的描述中正确的是()A.C程序中有调用关系的所有模块必须放在同一个源文件中B.函数必须有返回值,否则不能使用函数C.C程序必须由一个或一个以上函数构成D.C函数既可以嵌套定义又可以嵌套调用92.设有下列程序,则()int d=10;main(){int a=3;printf(“%d,%d\n”,a,d);}A.a是全局变量,d是全局变量B.a是局部变量,d是全局变量C.a是全局变量,d是局部变量D.a是局部变量,d是局部变量93.若有说明:int*p1,*p2,m=5,n;以下进行赋值的语句中合理的是()A.p1=m; B.&p2=n; C.pl=&m;p2=p1; D.*p1=&m;94.下列为指针数组定义的是()A.float(*)[6]; B.float p[6]; C.float(*)(); D.float *p[6];95.设有说明:FILE*fp;对于fp=fopen(″c:\\abc.dat″,″rb″);语句,下列说法中不正确的是()A.fp将指向abc.dat文件B.以只读方式打开二进制文件C.打开文件的文件名是abc.datD.以读写方式打开ASCII码文件96.ASCII码文件的结束可以用符号常量EOF表示。